PureBasic

Forums PureBasic
Nous sommes le Sam 25/Mai/2013 12:29

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 9 messages ] 
Auteur Message
 Sujet du message: Purebasic fait de la magie !!
MessagePosté: Dim 11/Mar/2012 16:26 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 26/Avr/2004 0:40
Messages: 12957
c'est le seul langage que je connais qui soit capable de dire que
"toto" est different de "toto" !! :lol:

regardez bien cette video :

et plus particulierement se qui se passe avec la ligne :
Code:
If tutu$=tutu2$ And Len(tutu$)>1


j'attends que les 2 variables soient egale a "endif"
je trace et ... ça saute au Else !! :lol:

cherchez l'erreur ! 8O
pas trop fiable le purebasic :lol:

http://youtu.be/AJnxBr6BJ3s

le probleme c'est que je n'arrive pas a reproduire ce soucis en dehors de mon prg ...

mais que ça m' handicape pour EPB ( c'est dans la procedure de tabulation des codes de EPB )

pareil si j'utilise :

Code:
If tutu$=tutu2$
!!! 8O de mieux en mieux

_________________
Image


Haut
 Profil  
 
 Sujet du message: Re: Purebasic fait de la magie !!
MessagePosté: Dim 11/Mar/2012 18:12 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 25/Mar/2007 13:44
Messages: 500
Localisation: Toulouse, France
Essayes de faire:
debug Len(tutu$)
debug Len(tutu2$)

parfois, il y a des caractères non-imprimables qui se cachent (du genre des retours à la ligne ou des trucs comme ca). Avec le Len() tu verras la taille "réelle" de la chaine et les caractères invisibles tu trouveras .


Haut
 Profil  
 
 Sujet du message: Re: Purebasic fait de la magie !!
MessagePosté: Dim 11/Mar/2012 20:56 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 26/Avr/2004 0:40
Messages: 12957
OUI ! tu as raison

j'ai 6 caractere et 5 caracteres !!
mince ça n'apparait pas dans le debugger 8O

tutu$=6
tutu2$=5
un chr(13) qui trainait !

j'hallucine ! :roll: :lol: tout ce temps perdu a chercher

je pensai que la debugger aurai affiché "endif █" et pas "endif"

ce serai pas mal que le debugger affiche meme de façon symbolisé les caractères inf chr(32)... :)

_________________
Image


Haut
 Profil  
 
 Sujet du message: Re: Purebasic fait de la magie !!
MessagePosté: Lun 12/Mar/2012 8:57 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 04/Juin/2004 14:27
Messages: 236
Boujour a tous !


Citation:

ce serai pas mal que le debugger affiche meme de façon symbolisé les caractères inf chr(32)



C'est beeinnn.. Vrai !

+ 1 :lol:


Haut
 Profil  
 
 Sujet du message: Re: Purebasic fait de la magie !!
MessagePosté: Lun 12/Mar/2012 9:23 
Hors ligne
Avatar de l’utilisateur

Inscription: Dim 09/Oct/2005 16:51
Messages: 5229
Perdre du temps a rechercher ce genre d'erreur est effectivement rageant ^^
pour éviter ce genre de bourde, tu peux faire une petite procédure debug affichant le String$ entre crochets et/ou en affichant la taille.

Code:
Procedure.b DebugPlus(string$) ; Ar-S
  LString$ = Str(Len(string$)) + " cars."
  string$ = "[" + string$ + "] " + LString$
  Debug string$
  If LString$ <>""
    ProcedureReturn 0
  Else
    ProcedureReturn 1
  EndIf
EndProcedure
 
tutu$ = "toutou"+Chr(13)
tata$ = "toutou"

DebugPlus(tutu$)
DebugPlus(tata$)


edit :

Citation:
ce serai pas mal que le debugger affiche meme de façon symbolisé les caractères inf chr(32)


Dans le débug, j'ai tous ces caractères qui sont invisibles :
; 0,1,9,10,13,28 à 32,129,141,143,144,157,160

Pas seulement les inférieurs à chr(32)

_________________
.: Ar-S :. - Windows 8 x64 - Radeon HD 7870 - PB 5.11
LDV MULTIMEDIA : Assistance informatique Isère (38) Oyeu
PURE BASIC forum non officiel : Forum PB


Haut
 Profil  
 
 Sujet du message: Re: Purebasic fait de la magie !!
MessagePosté: Lun 12/Mar/2012 10:53 
Hors ligne

Inscription: Mer 11/Nov/2009 18:17
Messages: 1251
Localisation: Poitiers (Vienne)
Salut :)

Je suis d'accord avec vous que se serais bien que le debuger affiche les caractères invissible :wink:

_________________
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php


Haut
 Profil  
 
 Sujet du message: Re: Purebasic fait de la magie !!
MessagePosté: Lun 12/Mar/2012 11:48 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 26/Avr/2004 0:40
Messages: 12957
Ar-S a écrit:
Pas seulement les inférieurs à chr(32)



oui bien sur :)
j'aurai préféré que le debugger affiche de cette façon

Code:

Procedure.s DebugPlus(string$)
; Dobro
;129,141,143,144,157,160   
   for i=0 to 31
      string$=  ReplaceString(string$, chr(i), chr($2A))
   next i
   string$=  ReplaceString(string$, chr(129), chr($2A))
   string$=  ReplaceString(string$, chr(141), chr($2A))
   string$=  ReplaceString(string$, chr(143), chr($2A))
   string$=  ReplaceString(string$, chr(144), chr($2A))
   string$=  ReplaceString(string$, chr(157), chr($2A))
   string$=  ReplaceString(string$, chr(160), chr($2A))
ProcedureReturn string$
EndProcedure

tutu$ = "toutou"+Chr(13)
tata$ = "toutou"

debug DebugPlus(tutu$)
debug DebugPlus(tata$)

_________________
Image


Haut
 Profil  
 
 Sujet du message: Re: Purebasic fait de la magie !!
MessagePosté: Lun 12/Mar/2012 13:43 
Hors ligne

Inscription: Mer 11/Nov/2009 18:17
Messages: 1251
Localisation: Poitiers (Vienne)
Qu'est-ce que tu pense de ça ?:

Code:
Procedure.s ReplaceInvisibleCharacter(String$)
 
  For Position = 1 To Len(String$)
    Character$ = Mid(String$, Position, 1)
   
    Select Character$
       
      Case Chr(0)
        StringRetour$ + "+ NUL Chr(0) + "
      Case Chr(1)
        StringRetour$ + "+ SOH Chr(1) + "
      Case Chr(2)
        StringRetour$ + "+ STX Chr(2) + "
      Case Chr(3)
        StringRetour$ + "+ ETX Chr(3) + "
      Case Chr(4)
        StringRetour$ + "+ EOT Chr(4) + "
      Case Chr(5)
        StringRetour$ + "+ ENQ Chr(5) + "
      Case Chr(6)
        StringRetour$ + "+ ACK Chr(6) + "
      Case Chr(7)
        StringRetour$ + "+ BEL Chr(7) + "
      Case Chr(8)
        StringRetour$ + "+ BS Chr(8) + "
      Case Chr(9)
        StringRetour$ + "+ HT Chr(9) + "
      Case Chr(10)
        StringRetour$ + "+ LF Chr(10) + "
      Case Chr(11)
        StringRetour$ + "+ VT Chr(11) + "
      Case Chr(12)
        StringRetour$ + "+ FF Chr(12) + "
      Case Chr(13)
        StringRetour$ + "+ CR Chr(13) + "
      Case Chr(14)
        StringRetour$ + "+ SO Chr(14) + "
      Case Chr(15)
        StringRetour$ + "+ SI Chr(15) + "
      Case Chr(16)
        StringRetour$ + "+ DLE Chr(16) + "
      Case Chr(17)
        StringRetour$ + "+ DC1 Chr(17) + "
      Case Chr(18)
        StringRetour$ + "+ DC2 Chr(18) + "
      Case Chr(19)
        StringRetour$ + "+ DC3 Chr(19) + "
      Case Chr(20)
        StringRetour$ + "+ DC4 Chr(20) + "
      Case Chr(21)
        StringRetour$ + "+ NAK Chr(21) + "
      Case Chr(22)
        StringRetour$ + "+ SYN Chr(22) + "
      Case Chr(23)
        StringRetour$ + "+ ETB Chr(23) + "
      Case Chr(24)
        StringRetour$ + "+ CAN Chr(24) + "
      Case Chr(25)
        StringRetour$ + "+ EM Chr(25) + "
      Case Chr(26)
        StringRetour$ + "+ SUB Chr(26) + "
      Case Chr(27)
        StringRetour$ + "+ ESC Chr(27) + "
      Case Chr(28)
        StringRetour$ + "+ FS Chr(28) + "
      Case Chr(29)
        StringRetour$ + "+ GS Chr(29) + "
      Case Chr(30)
        StringRetour$ + "+ RS Chr(30) + "
      Case Chr(31)
        StringRetour$ + "+ US Chr(31) + "
      Case Chr(32)
      StringRetour$ + "+ Space Chr(30) + "
      Case Chr(129)
        StringRetour$ + "+ Chr(129) + "
      Case Chr(141)
        StringRetour$ + "+ Chr(141) + "
      Case Chr(143)
        StringRetour$ + "+ Chr(143) + "
      Case Chr(144)
        StringRetour$ + "+ Chr(144) + "
      Case Chr(157)
        StringRetour$ + "+ Chr(157) + "
      Case Chr(160)
        StringRetour$ + "+ Chr(160) + "
      Default
        StringRetour$ + Character$
    EndSelect
   
  Next
 
  StringRetour$ = ReplaceString(StringRetour$, "+ + ", "+ ")
  If Mid(StringRetour$, 1, 2) = "+ "
    StringRetour$ = Mid(StringRetour$, 3)
  EndIf
 
  ProcedureReturn StringRetour$
EndProcedure

For i = 0 To 255
    a$ + Chr(i)
Next

Debug ReplaceInvisibleCharacter(a$)



Et pourquoi le Null n'apparais pas dans la chaine (chr(0)) :?:
Je sais qu'il est réserver pour la fin de la chaine mais pourquoi n'apparais t-il pas ? :?

_________________
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php


Haut
 Profil  
 
 Sujet du message: Re: Purebasic fait de la magie !!
MessagePosté: Lun 12/Mar/2012 17:44 
Hors ligne
Avatar de l’utilisateur

Inscription: Lun 26/Avr/2004 0:40
Messages: 12957
dayvid a écrit:
Qu'est-ce que tu pense de ça ?:

Et pourquoi le Null n'apparais pas dans la chaine (chr(0)) :?:
Je sais qu'il est réserver pour la fin de la chaine mais pourquoi n'apparais t-il pas ? :?


parce que ta boucle
est :
Code:
To Len(String$)
ce qui veux dire qu'elle va de 1 a la longueur de String$
deja lorsque tu entre dans ta procedure sa longueur est de 0 ! .. donc il ne fait meme pas la boucle
mais meme si tu ajoute a$="a"+chr(0)

chr(0) ne fait pas partie de ta variable, elle est considéré comme une fin de chaine
et Len() ne comptabilise pas le caractere de fin de chaine

_________________
Image


Haut
 Profil  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 9 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye