Page 1 sur 1
Bug incompréhensible
Publié : sam. 18/févr./2012 2:09
par popo9120
Bonjour à tous
Voilà je tombe sur un bug totalement incompréhensible !
En gros quand je définie mes variables et que j'appelle mes fonctions directement ça marche parfaitement, par contre quand je récupére le contenu de mon Editor gadget qui contient la même chose, ça ne marche pas !
Voici le code :
Code : Tout sélectionner
patch$ = "Quelque chose"
structureFile$ = "index.html"+Chr(10)+"css/"+Chr(10)+"/style.css"+Chr(10)+"js/"+Chr(10)+"/script.js"+Chr(10)+"img/"
Procedure create(patch$, structureFile$)
If(patch$ <> "" And structureFile$ <> "")
;Dim fichierACreer$(5)
;fichierACreer$(0) = "index.html"
;
;Debug fichierACreer$(0)
nbrFichiersACreer = CountString(structureFile$,Chr(10))
Dim fichierACreer.s(nbrFichiersACreer +1)
For k=1 To nbrFichiersACreer + 1
fichierACreer.s(k-1) = StringField(structureFile$, k, Chr(10))
Next
For k=0 To nbrFichiersACreer
currentLine$ = fichierACreer.s(k)
If (Right(currentLine$, 1) = "/")
Debug Left(currentLine$, Len(currentLine$) - 1)
EndIf
Next
EndIf
EndProcedure
create(patch$, structureFile$)
Le bug est que si mon Editor Gadget contient la même chose que ma variable structureFiles il va me retourner uniquement le dernier dossier nommé img/
alors que avec le code ci-dessus il me retourne css/ js/ et img/
Bref je sais pas si vous comprenez mais c'est très étrange.
Re: Bug incompréhensible
Publié : sam. 18/févr./2012 7:15
par G-Rom
La prochaine fois , donne un code qui reproduit "le bug"
Code : Tout sélectionner
Declare create(patch$, structureFile$)
patch$ = "Quelque chose"
structureFile$ = "index.html"+Chr(10)+"css/"+Chr(10)+"/style.css"+Chr(10)+"js/"+Chr(10)+"/script.js"+Chr(10)+"img/"
wnd = OpenWindow(#PB_Any,0,0,640,480,"")
editor = EditorGadget(#PB_Any,0,0,640,400)
button = ButtonGadget(#PB_Any,0,410,640,60,"C L I C K M E")
SetGadgetText(editor, structureFile$)
Repeat
event = WindowEvent()
If event = #PB_Event_Gadget
gadget = EventGadget()
If gadget = button
create(patch$, GetGadgetText(editor))
EndIf
EndIf
Until event = #PB_Event_CloseWindow
End
Procedure create(patch$, structureFile$)
If(patch$ <> "" And structureFile$ <> "")
;Dim fichierACreer$(5)
;fichierACreer$(0) = "index.html"
;
;Debug fichierACreer$(0)
nbrFichiersACreer = CountString(structureFile$,Chr(10))
Dim fichierACreer.s(nbrFichiersACreer +1)
For k= 1 To nbrFichiersACreer + 1
fichierACreer.s(k-1) = StringField(structureFile$, k, Chr(10))
Next
For k=0 To nbrFichiersACreer
currentLine$ = fichierACreer.s(k)
If (Right(currentLine$, 1) = "/")
Debug Left(currentLine$, Len(currentLine$) - 1)
EndIf
Next
EndIf
EndProcedure
Re: Bug incompréhensible
Publié : sam. 18/févr./2012 11:03
par popo9120
Ah oui autant pour moi je pensais que seul la partie intéressante du code devait être affiché >< . Ton exemple bug on est d'accords ? C'est incompréhensible ....
Re: Bug incompréhensible
Publié : sam. 18/févr./2012 11:16
par Backup
en quoi ça bug ?
réponse clair et net svp ...
parce que :
En gros quand je définie mes variables et que j'appelle mes fonctions directement ça marche parfaitement, par contre quand je récupére le contenu de mon Editor gadget qui contient la même chose, ça ne marche pas !
ben .. perso je ne comprends rien a ce que tu ecris là
tu parle de fonctions ... qu'elle fonction ?
tu parle de définir tes variables .... qu'entends tu par là ? qu'elle numero de ligne ?
tu parle de récupération dans un éditeur ... ton code n'en contient pas ..
G-rom a fait un editeur ... bon , mais en quoi sont code bug ??
l'éditeur affiche ce qu'on lui demande , je vois pas de bug
lorsque vous rédigez un message pour signaler un probleme dans votre code
dites vous qu'on est pas a votre place , on ne connais pas le contexte dans lequel le code est exécuté
donc une explication clair et détaillé est la moindre des choses , sinon , les réponses seront aussi "débile" que la question

Re: Bug incompréhensible
Publié : sam. 18/févr./2012 11:30
par popo9120
Dobro a écrit :en quoi ça bug ?
réponse clair et net svp ...
parce que :
En gros quand je définie mes variables et que j'appelle mes fonctions directement ça marche parfaitement, par contre quand je récupére le contenu de mon Editor gadget qui contient la même chose, ça ne marche pas !
ben .. perso je ne comprends rien a ce que tu ecris là
tu parle de fonctions ... qu'elle fonction ?
tu parle de définir tes variables .... qu'entends tu par là ? qu'elle numero de ligne ?
tu parle de récupération dans un éditeur ... ton code n'en contient pas ..
G-rom a fait un editeur ... bon , mais en quoi sont code bug ??
l'éditeur affiche ce qu'on lui demande , je vois pas de bug
lorsque vous rédigez un message pour signaler un probleme dans votre code
dites vous qu'on est pas a votre place , on ne connais pas le contexte dans lequel le code est exécuté
donc une explication clair et détaillé est la moindre des choses , sinon , les réponses seront aussi "débile" que la question

Ok désolé, en gros prend le code de G-rom et compile le. Normalement il devrait afficher dans le débug toutes les lignes se terminant par un "/". Or ici il affiche que la dernière ligne terminant par un "/"
Re: Bug incompréhensible
Publié : sam. 18/févr./2012 11:37
par G-Rom
il devrait afficher dans le débug toutes les lignes se terminant par un "/". Or ici il affiche que la dernière ligne terminant par un "/"
c'est pas clair , ici , ca affiche les dossier comme c'est demandé...
si c'est le fait qui manque / à la fin qui te défrisse , bah vire le " Debug Left(currentLine$, Len(currentLine$) - 1) " et remplace par currentLine$
Re: Bug incompréhensible
Publié : sam. 18/févr./2012 11:41
par popo9120
G-Rom a écrit :il devrait afficher dans le débug toutes les lignes se terminant par un "/". Or ici il affiche que la dernière ligne terminant par un "/"
c'est pas clair , ici , ca affiche les dossier comme c'est demandé...
si c'est le fait qui manque / à la fin qui te défrisse , bah vire le " Debug Left(currentLine$, Len(currentLine$) - 1) " et remplace par currentLine$
En fait après multiple test j'ai remarque que pour la derniére ligne le dernier carractére était "/" mais pour les autre c'était un retour à la ligne ou un truc comme ça. En gros histoire de schématiser voici ce que je veux faire :
Regarde ce que contient l'éditor gadget, découpe chaque ligne et place les dans un tableau, si un ligne termine par un slash alors c'est un dossier, sinon si une commence par un slash c'est un fichier.
En fouillant la doc j'ai trouve la fonction Asc qui permet de renvoyer la valeur ASCII de caractére, et en fait le dernier caractére n'est pas un caractére de fin de chaine ( Chr(10) ) mais un retour chariot ( Chr(13) ) du coup j'ai modifié ma condition comme ceci :
Code : Tout sélectionner
If(Right(currentLine$,2) = "/"+Chr(13) Or Right(currentLine$,1) = "/")
Debug currentLine$
EndIf
Et maintenant il m'affiche bien ce qu'il faut

Re: Bug incompréhensible
Publié : sam. 18/févr./2012 11:53
par G-Rom
j'avais compris , c'est quoi le problème ? tu n'arrives pas à différencier les 2 dans le code ?
Re: Bug incompréhensible
Publié : sam. 18/févr./2012 11:54
par popo9120
Regarde au dessus
Je viens même en fait d'utiliser la fonction Rtrim qui me permet de supprimer le caractère Chr(13) et d'avoir une condition plus correct. Merci pour votre aide les gars
