Page 1 sur 4

[resolu]ReplaceString.. et encodage de text

Publié : jeu. 23/août/2007 15:30
par Ar-S
Salut à tous,

voilà je suis en train d'élaboré un petit programme pour coder/decoder des messages.

Il fonctionnerait à partir de string replace.

Je voudrais donc savoir comment indiquer que tel lettre (exemple : a) soit remplacée par ("la moutarde")

sans avoir à faire :

Code : Tout sélectionner

phrase$=GetGadgetText(#Message)
        SetGadgetText(#Affiche,ReplaceString(phrase$,"a","dans le grenier ",1))
        SetGadgetText(#Affiche,ReplaceString(phrase$,"b","pour le moment ",2))
biensure comme ça ça chie mais je ne sais pas comment procéder.
Merci de votre aide.

Publié : jeu. 23/août/2007 16:58
par Lna
ReplaceString, ce n'est pas la bonne instruction pour ça. 8O

Il est mieux de procéder caractère par caractère. 8)

Voilà une solution simpliste, que l'on peut optimiser sans trop de difficultés avec des tableaux et des pointeurs. :idea:

Code : Tout sélectionner

a$="ABC"

chaine_codee$=""

len_a=Len(a$)

For position_caractere=1 To len_a

  caractere$=Mid(a$,position_caractere,1)

  Select UCase(caractere$)
  Case "A"
    chaine_codee$+"dans le grenier "
  Case "B"
    chaine_codee$+"pour le moment  "
  Default
    chaine_codee$+caractere$
  EndSelect
  
Next position_caractere

Debug chaine_codee$
@ peluche

Publié : jeu. 23/août/2007 17:48
par Chris
Pourquoi ReplaceString() ne serait-elle pas la bonne instruction?
Elle fonctionne très bien!

Petit test:

Code : Tout sélectionner

Procedure StartTest()
  Global Debut
  Debut = GetTickCount_()
EndProcedure

Procedure StopTest(Nb, flag)
  Stop = GetTickCount_()- Debut
  
  Heures        = Stop/3600000  : rh = Stop % 3600000
  Minutes       = rh/60000      : rm = rh % 60000
  Secondes      = rm/1000       : rs = rm % 1000
  MSecondes     = rs                            
  
  Heures$       = RSet(Str(Heures)    ,2,"0")
  Minutes$      = RSet(Str(Minutes)   ,2,"0")
  Secondes$     = RSet(Str(Secondes)  ,2,"0")
  M_Secondes$   = RSet(Str(MSecondes) ,3,"0")
  
  OpenConsole()
  PrintN("Resultat du test :")
  PrintN("")
  PrintN("Le test "+Str(Nb)+" s'est termine en : "+ Heures$+" h "+Minutes$+" mn "+Secondes$+" s et "+M_Secondes$+" ms")
  PrintN ("")
  PrintN ("--------------------------------------------------")
  
  If flag = 1
  PrintN("Tapez une touche pour quitter")
  
    Repeat
    Until Inkey()
  EndIf
EndProcedure

For i = 0 To 10
  If i = 10 : flag = 1 : EndIf
  
  StartTest() ;/ Test 1
  Chaine_A$ = "Babar et son ami le canard barbare arrivent tard au bar de la gare"
  chaine_B$ = ReplaceString(Chaine_A$, "a", "glop")
  chaine_B$ = ReplaceString(Chaine_A$, "a", "blurp")
  
  Delay(20)
  StopTest(i, 0)
  
  StartTest() ;/ Test 2
  a$="Babar et son ami le canard barbare arrivent tard au bar de la gare"
  chaine_codee$=""
  len_a=Len(a$)
  
  For position_caractere=1 To len_a
    
    caractere$=Mid(a$,position_caractere,1)
    
    Select UCase(caractere$)
      Case "A"
        chaine_codee$+"glop"
      Case "B"
        chaine_codee$+"blurp"
      Default
        chaine_codee$+caractere$
    EndSelect
    
  Next position_caractere
  
  Delay(20)
  StopTest(i, flag)
  
Next i

Publié : jeu. 23/août/2007 17:51
par Ar-S
Merci à vous deux pour ces 2 exemples :) rien de tel pour comprendre un fonctionnement et la syntaxe adéquat.

Je vais tenter de poursuivre, ça m'a bien aidé !
:P :P :P

Publié : jeu. 23/août/2007 18:44
par Ar-S
Bon finalement j'ai quand même un soucis.

j'ai tenté d'incorporer la technique d'Lna,

Code : Tout sélectionner

      If EventGadget = #BT_Coder
        ClearClipboard() 
        phrase$=GetGadgetText(#Message)
        chaine_codee$=""
        len_a=Len(phrase$)
        
        For position_caractere=1 To len_a
          
          caractere$=Mid(phrase$,position_caractere,1)
          
          Select LCase(caractere$)
            Case "a"
              chaine_codee$+"dans le grenier "
            Case "b"
              chaine_codee$+"pour le moment "
ça marche au poil.

Par contre, j'ai un bouton décoder, et en inversant les commandes ça ne marche pas.

Code : Tout sélectionner

phrase$=GetGadgetText(#Message)
        chaine_codee$=""
        len_a=Len(phrase$)
        
        For position_caractere=1 To len_a
          
          caractere$=Mid(phrase$,position_caractere,1)
          
          Select LCase(caractere$)
            Case "dans le grenier "
              chaine_codee$+"a"
            Case "pour le moment "
              chaine_codee$+"b"
le résultat n'est alors pas décodé. :(
Comment ça se fait ?

Publié : jeu. 23/août/2007 18:53
par Chris
C'est normal.

Il faut que tu recherches la chaine que tu as mise pour remplacer les lettres.

caractere$=Mid(phrase$,position_caractere,1)
La longueur de ta chaine est de 1 caractère. Ca ne peut pas aller.

Il y a peut-être autre chose, j'ai pas essayé

Celà dit, tu te casses la tête pour pas grand chose.

Pour ce que tu fais, le ReplaceString() fonctionne aussi bien, et est beaucoup plus simple à coder.

Pas besoin de t'occuper de la longueur de tes chaines, elles peuvent faire le nombre de caractères qu'elles veulent, le décodage fonctionnera toujours, suffit juste que tu n'aie pas de mots qui se modifient plusieurs fois. Par exemple, si pour remplacer le "a", tu mets un mot qui comporte un "b", au tour suivant, le "b" sera remplacé. Ca risque de poser des problèmes pour recomposer les mots.

Je reprend mon canard barbare:

Code : Tout sélectionner

Chaine_A$ = "Babar et son ami le canard barbare arrivent tard au bar de la gare"

Chaine_A$ = ReplaceString(Chaine_A$, "a", "glop")
Chaine_A$ = ReplaceString(Chaine_A$, "b", "blurp")

MessageRequester("", Chaine_A$)


Chaine_A$ = ReplaceString(Chaine_A$, "glop", "a")
Chaine_A$ = ReplaceString(Chaine_A$, "blurp", "b")

MessageRequester("", Chaine_A$)

Publié : jeu. 23/août/2007 19:37
par Lna
ReplaceString pour un seul passage c'est bon, mais pas à chaque fois pour les suivants. 8O

Par contre pour décoder, ReplaceString c'est bien mieux adapté 8) . Sous réserve de définir un caractère par mot (majuscule et minuscule), et que certains mots ne soient pas inclus dans d'autres. :idea:

Code : Tout sélectionner

Chaine_A$ = "A b c a b c"
Debug Chaine_A$

chaine_B$ = ReplaceString(Chaine_A$, "a", "glabibouga ",1) ; 1 pour a=A
Debug chaine_B$

chaine_B$ = ReplaceString(chaine_B$, "b", "Casimir ",1) 
Debug chaine_B$

;A b c a b c
;glabibouga  b c glabibouga  b c
;glaCasimir iCasimir ouga  Casimir  c glaCasimir iCasimir ouga  Casimir  c

Code : Tout sélectionner

a$="A b c a b c"
Debug a$
  
chaine_codee$="" 
len_a=Len(a$) 
  
For position_caractere=1 To len_a 
  
  caractere$=Mid(a$,position_caractere,1) 
  
  Select UCase(caractere$) 
    Case "A" 
      chaine_codee$+"glabibouga " 
    Case "B" 
      chaine_codee$+"Casimir " 
    Default 
      chaine_codee$+caractere$ 
  EndSelect 
  
Next position_caractere 
  
Debug chaine_codee$

;A b c a b c
;glabibouga  b c glabibouga  b c
;glaCasimir iCasimir ouga  Casimir  c glaCasimir iCasimir ouga  Casimir  c
 

chaine_decodee$=ReplaceString(chaine_codee$, "glabibouga ","a",1)
chaine_decodee$=ReplaceString(chaine_decodee$, "Casimir ","b",1)
    
Debug chaine_decodee$

;a b c a b c
Pour la peine Chris, tu seras condamné à réviser toi aussi intégralement ton alphabet, en regardant le clip de Peter Kitsch et d'Olivia.

Image

http://www.youtube.com/watch?v=Db0LCDY-AjQ

Image

@ peluche

Publié : jeu. 23/août/2007 19:40
par Chris
Ben je voudrais pas te contrarier, mais c'est un peu ce que je disais : Eviter les mots inclus dans d'autres.

J'ai fait un petit exemple avec une boucle, ça fonctionne bien, à condition de décoder dans le sens inverse de celui ou on a codé.

Code : Tout sélectionner

Chaine_A$ = "Babar et son ami le canard barbare arrivent tard au bar de la gare"

Dim MonTableau.s(13)


; On charge un tableau avec des mots
Restore Mots
For i = 0 To 12 
  Read MonTableau(i) :Debug MonTableau(i)
Next

DataSection
Mots:
Data.s  "route","velo","truite","cabine","ecole","centre","lait","chien","short","boum","coin","trou","scie"
EndDataSection


; on applique un mot à certains caractères
For i = 0 To 12
  Chaine_A$ = ReplaceString(Chaine_A$, Chr(i+96), MonTableau(i))
Next
MessageRequester("", Chaine_A$)

;On inverse
For i = 12 To 0 Step -1
  Chaine_A$ = ReplaceString(Chaine_A$, MonTableau(i), Chr(i+96))
Next
MessageRequester("", Chaine_A$)

Et avec 26 mots (donc, un mot par lettre)

Code : Tout sélectionner

Chaine_A$ = "Portez ce vieux whisky au juge blond qui fume."

Dim MonTableau.s(25)


; On charge un tableau avec des mots
Restore Mots
For i = 0 To 25 
  Read MonTableau(i) :Debug MonTableau(i)
Next

DataSection
Mots:
Data.s "route","velo","truite","cabine","ecole","centre","lait","chien","short","boum","coin","trou","scie"
Data.s "maison","bateau","machine","éponge","asterisque","rideau","nappe","crevette","bouilloire","signature","pastèque","carabine","rapace"

EndDataSection


;/ ------------------------------------------------------------
MessageRequester("Chaine originale", Chaine_A$)

; on applique un mot à chaque caractères
For i = 0 To 25
  Chaine_A$ = ReplaceString(Chaine_A$, Chr(i+96), MonTableau(i))
Next
MessageRequester("Chaine codée", Chaine_A$)

;/ ------------------------------------------------------------
;On inverse
For i = 25 To 0 Step -1
  Chaine_A$ = ReplaceString(Chaine_A$, MonTableau(i), Chr(i+96))
Next
MessageRequester("Chaine reconstituée", Chaine_A$)


Publié : jeu. 23/août/2007 20:50
par Lna
Ca fonctionne Chris, mais tu entres dans une étape récursive très dangereuse et aussi hors de control. 8O
En rajoutant un b devant tes premiers codes, j'ai même eu une sortie de l'éditeur comme jamais vue. 8O (je n'ai pas réussi à la reproduire)

Pour coder "abc" -> "routevelotruite"

Jusque là ensemble, on ne peut pas nier ce résultat de codage, qui est celui attendu.

mais j'obtiens en fin de codage de ton programme ça :

vcentrescieotruboumtcentrecabboumncentre

et dans le premier programme après 26 caractères ça :

Code : Tout sélectionner

signaturecebacresignatureetteeabouilloirecresignatureetterideabouilloireen
appeciemachinecresignatureetterideabouilloirebouilloirebmachinebouilloire
mainappemachinebacresignatureetteeabouilloirecresignatureettecebacresi
gnatureetteeabouilloirecresignatureetterideabouilloireecabbmachinebouilloi
remainappemachinebacresignatureetteeabouilloirebacresignatureetteeabo
uilloirecebacresignatureetteeabouilloirecresignatureetterideabouilloiree
comment l'expliques-tu ?

Code : Tout sélectionner

Chaine_A$ = "abc"

Dim MonTableau.s(13) 


; On charge un tableau avec des mots 
Restore Mots 
For i = 0 To 12 
  Read MonTableau(i) :Debug MonTableau(i) 
Next 

DataSection 
Mots: 
Data.s  "route","velo","truite","cabine","ecole","centre","lait","chien","short","boum","coin","trou","scie" 
EndDataSection 


; on applique un mot à certains caractères 
For i = 0 To 12 
  Chaine_A$ = ReplaceString(Chaine_A$, Chr(i+96), MonTableau(i)) 
Next 

Debug Chaine_A$
J'espère que tu disposes de beaucoup de memoire, car la récursivité, elle a du caractère. :wink:

@ peluche

Publié : jeu. 23/août/2007 22:03
par Ar-S
Et bien j'en suis pas loin je pense mais maintenant c'est le bouton "coder" qui ne fonctionne plus !

Voilà la bête !

Code : Tout sélectionner

; Ar-S Crypt / 2007
;{- Enumerations / DataSections

Enumeration
  #ARS
  #BT_Coder
  #BT_Decoder
  #Affiche
  #Button_3
  #Text_4
  #Message
  #Texte1
  #Button_7
  #Titre
  #Font_Titre
EndEnumeration
;}
Define.l Event, EventWindow, EventGadget, EventType, EventMenu
;}
Procedure OpenWindow_ARS()
  If OpenWindow(#ARS, 31, 372, 368, 389, "Ar-S Crypt", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
    If CreateGadgetList(WindowID(#ARS))
      ButtonGadget(#BT_Coder, 7, 150, 90, 25, "Coder")
      ButtonGadget(#BT_Decoder, 102, 150, 90, 25, "Decoder")
      EditorGadget(#Affiche, 5, 194, 355, 160, #PB_Editor_ReadOnly)
      ButtonGadget(#Button_3, 6, 360, 355, 20, "Copier le résultat dans le presse papier")
      TextGadget(#Text_4, 7, 178, 95, 15, "Résultat")
      EditorGadget(#Message, 3, 65, 355, 80)
      TextGadget(#Texte1, 10, 47, 140, 15, "Message à coder / décoder")
      ButtonGadget(#Button_7, 344, 150, 15, 40, "?")
      TextGadget(#Titre, 2, 0, 365, 45, "Ar-S Crypt", #PB_Text_Border|#PB_Text_Center)
      ; Gadget Fonts
      SetGadgetFont(#Titre, LoadFont(#Font_Titre, "Arial Black", 22, 0))
    EndIf
  EndIf
EndProcedure

OpenWindow_ARS()

;{- Event loop
Repeat
  Event = WaitWindowEvent()
  Select Event
    ; ///////////////////
    Case #PB_Event_Gadget
      EventGadget = EventGadget()
      EventType = EventType()
      If EventGadget = #BT_Coder
        ClearClipboard() 
        phrase$=GetGadgetText(#Message)
        chaine_codee$=""
        len_a=Len(phrase$)
        For position_caractere=1 To len_a
        caractere$=Mid(phrase$,position_caractere,1)  
        
        Select LCase(phrase$)
            Case "a"
              chaine_codee$+"hier "
            Case "b"
              chaine_codee$+"pour le moment "
            Case "c"
              chaine_codee$+"une énorme tête "
            Case "d"
              chaine_codee$+"pour accomplir son destin "
            Case "e"
              chaine_codee$+"j'étais comme un dingue. "
            Case "f"
              chaine_codee$+"pour ce que je sais "
            Case "g"
              chaine_codee$+"le jus d'orange c'est bon, "
            Case "h"
              chaine_codee$+"de bonnes soupes pour grandir. "
            Case "i"
              chaine_codee$+"vivement les vacances "
            Case "j"
              chaine_codee$+"si la recolte est bonne "
            Case "k"
              chaine_codee$+"la gueule de bois est assurée "
            Case "l"
              chaine_codee$+"si la vue baisse, "
            Case "m"
              chaine_codee$+"tel est le mot d'ordre "
            Case "n"
              chaine_codee$+"de l'été "
            Case "o"
              chaine_codee$+"jusqu'au bout "
            Case "p"
              chaine_codee$+"une bonne bouffée "
            Case "q"
              chaine_codee$+"a condition de "
            Case "r"
              chaine_codee$+"aucun doute "
            Case "s"
              chaine_codee$+"ne pas baisser les bras "
            Case "t"
              chaine_codee$+"sans doute, "
            Case "u"
              chaine_codee$+"participer, "
            Case "v"
              chaine_codee$+"attention cependant, "
            Case "w"
              chaine_codee$+"juqu'à la fin. "
            Case "x"
              chaine_codee$+"regarder la différence "
            Case "y"
              chaine_codee$+"ah la weed ! "
            Case "z"
              chaine_codee$+"jusqu'au petit matin "
            Case "0"
              chaine_codee$+"(ch5v10) "
            Case "1"
              chaine_codee$+"(...) "
            Case "2"
              chaine_codee$+"(ch2v5) "
            Case "3"
              chaine_codee$+"(page 7 ligne 4 mot 22 "
            Case "4"
              chaine_codee$+"(Mot 8 page 5 ligne 16) "
            Case "5"
              chaine_codee$+"(ch2v5). "
            Case "6"
              chaine_codee$+"(ch7v3), "
            Case "7"
              chaine_codee$+"(page 105 ligne 4 mot 3) "
            Case "8"
              chaine_codee$+"(page 52 ligne 8 mot 5) "
            Case "9"
              chaine_codee$+"(ch12v3) "
            Case "à"
              chaine_codee$+"me "
           Default
              chaine_codee$+caractere$
          EndSelect
        Next position_caractere    
        phrase$=chaine_codee$
        SetGadgetText(#Affiche,chaine_codee$)
      EndIf
      
      If EventGadget = #BT_Decoder
        ClearClipboard()
        phrase$=GetGadgetText(#Message)
        phrase$ = ReplaceString(phrase$, "hier ", "a")
        phrase$ = ReplaceString(phrase$, "pour le moment ", "b")
        phrase$ = ReplaceString(phrase$, "une enorme tete ", "c")
        phrase$ = ReplaceString(phrase$, "pour accomplir son destin ", "d")
        phrase$ = ReplaceString(phrase$, "j'étais comme un dingue. ", "e")
        phrase$ = ReplaceString(phrase$, "pour ce que je sais ", "f")
        phrase$ = ReplaceString(phrase$, "le jus d'orange c'est bon, ", "g")
        phrase$ = ReplaceString(phrase$, "de bonnes soupes pour grandir. ", "h")
        phrase$ = ReplaceString(phrase$, "vivement les vacances ", "i")
        phrase$ = ReplaceString(phrase$, "si la recolte est bonne ", "j")
        phrase$ = ReplaceString(phrase$, "la gueule de bois est assurée ", "k")
        phrase$ = ReplaceString(phrase$, "si la vue baisse, ", "l")
        phrase$ = ReplaceString(phrase$, "tel est le mot d'ordre ", "m")
        phrase$ = ReplaceString(phrase$, "de l'été ", "n")
        phrase$ = ReplaceString(phrase$, "jusqu'au bout ", "o")
        phrase$ = ReplaceString(phrase$, "a condition de ", "p")
        phrase$ = ReplaceString(phrase$, "aucun doute ", "q")
        phrase$ = ReplaceString(phrase$, "ne pas baisser les bras ", "r")
        phrase$ = ReplaceString(phrase$, "une enorme tete ", "s")
        phrase$ = ReplaceString(phrase$, "sans doute, ", "t")
        phrase$ = ReplaceString(phrase$, "participer, ", "u")
        phrase$ = ReplaceString(phrase$, "attention cependant, ", "v")
        phrase$ = ReplaceString(phrase$, "juqu'à la fin. ", "w")
        phrase$ = ReplaceString(phrase$, "regarder la différence ", "x")
        phrase$ = ReplaceString(phrase$, "ah la weed ! ", "y")
        phrase$ = ReplaceString(phrase$, "jusqu'au petit matin ", "z")
        phrase$ = ReplaceString(phrase$, "(ch5v10) ", "0")
        phrase$ = ReplaceString(phrase$, "(...) ", "1")
        phrase$ = ReplaceString(phrase$, "(ch2v5) ", "2")
        phrase$ = ReplaceString(phrase$, "(page 7 ligne 4 mot 22 ", "3")
        phrase$ = ReplaceString(phrase$, "(Mot 8 page 5 ligne 16) ", "4")
        phrase$ = ReplaceString(phrase$, "(ch2v5). ", "5")
        phrase$ = ReplaceString(phrase$, "(ch7v3), ", "6")
        phrase$ = ReplaceString(phrase$, "(page 105 ligne 4 mot 3) ", "7")
        phrase$ = ReplaceString(phrase$, "(page 52 ligne 8 mot 5) ", "8")
        phrase$ = ReplaceString(phrase$, "(ch12v3) ", "9")
        phrase$ = ReplaceString(phrase$, "exemple : ", "0")
        phrase$ = ReplaceString(phrase$, "me ", "à")
        
        SetGadgetText(#Affiche,phrase$)
         
      EndIf
      If EventGadget = #Affiche
      ElseIf EventGadget = #Button_3
        SetClipboardText(phrase$)
        SetGadgetText(#Affiche,"La phrase est copiée dans le presse papier.")
      ElseIf EventGadget = #Text_4
      ElseIf EventGadget = #Message
      ElseIf EventGadget = #Texte1
      ElseIf EventGadget = #Button_7
        MessageRequester("A propos","Ar-S Crypt v0.3")
      ElseIf EventGadget = #Titre
      EndIf
      ; ////////////////////////
    Case #PB_Event_CloseWindow
      EventWindow = EventWindow()
      If EventWindow = #ARS
        CloseWindow(#ARS)
        Break
      EndIf
  EndSelect
ForEver
;
;}

Lorsque l'on clique sur Coder, le mesage se recopie en clair..

Publié : jeu. 23/août/2007 22:16
par Lna
Juste une petite erreur ici, à remplacer.

Code : Tout sélectionner

Select LCase(caractere$)
Ca fonctionne bien. 8)

@ peluche

Publié : jeu. 23/août/2007 22:41
par Backup
Lna a écrit : Ca fonctionne bien. 8)

ben non ça fonctionne pas !!

entrez la phrase suivante

je m'appelle michel et j'ai toute mes dents

faites encoder

puis copier le résultat a la place de la phrase a encoder

faites décoder
on ne retrouve pas la phrase originale !! :?

Publié : jeu. 23/août/2007 23:18
par Lna
Ca fonctionne parfaitement. 8)

Le 1 er EditorGadget sert à entrer le texte + codage -> résultat dans le 2eme EditorGadget.
Le décodage ne fonctionne que dans le 2 eme EditorGadget.

Code : Tout sélectionner

entrez la phrase suivante 

je m'appelle michel et j'ai toute mes dents 

faites encoder 

faites décoder 

on retrouve la phrase originale !! 
>Ar-S : Il ne reste plus qu'à tout optimiser dans un tableau comme Chris l'avait fait, avec possibilité de charger les mots à partir d'un fichier. :idea:

@ peluche

Publié : ven. 24/août/2007 8:38
par Backup
le 2em editor gadget n'est pas editable !!

on ne peux rien poser dedans !


je met ma phrase dans le 1er editeur gadget
je m'appelle michel et j'ai toute mes dents

j'appuie sur "coder"

j'obtiens dans le 2em editeur gadget non editable
la phrase :
si la recolte est bonne j'étais comme un dingue. tel est le mot d'ordre 'hier une bonne bouffée une bonne bouffée j'étais comme un dingue. si la vue baisse, si la vue baisse, j'étais comme un dingue. tel est le mot d'ordre vivement les vacances une énorme tête de bonnes soupes pour grandir. j'étais comme un dingue. si la vue baisse, j'étais comme un dingue. sans doute, si la recolte est bonne 'hier vivement les vacances sans doute, jusqu'au bout participer, sans doute, j'étais comme un dingue. tel est le mot d'ordre j'étais comme un dingue. ne pas baisser les bras pour accomplir son destin j'étais comme un dingue. de l'été sans doute, ne pas baisser les bras

je reprends cette phrase codé , je la colle dans le premier editeur
(le seul editeur ou l'on peux ecrire !!)

j'appuie sur décoder

voici ce que j'obtiens :
je m'aune bonne bouffée une bonne bouffée elle miune énoràtête hel et j'ai toute mer dentr

Publié : ven. 24/août/2007 9:44
par Chris
T'as bien de la chance que le programme accepte de coder la phrase.

Il veut rien savoir chez moi. Il me copie, dans l'éditeur du bas, exactement ce que j'ai écrit dans celui du haut. :roll:

PS: Je ne comprend pas cette manie que vous avez tous à vouloir recréer des fonctions qui existent nativement dans PureBasic, alors qu'elles ne sont ni plus rapides, ni plus pratiques à utiliser, et qu'elles n'apportent finalement rien de plus.