Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| bug sur TRON, et réflexion sur cette instruction | |
| | Auteur | Message |
---|
Invité Invité
| Sujet: bug sur TRON, et réflexion sur cette instruction Mar 7 Aoû 2012 - 13:51 | |
| Je suis certain que Jack va trouver le fonctionnement de tron, comme correcte, et là je ne suis pas d'accord. Cela fait un petit moment que je me retient pour le dire, mais je ne trouve pas cette instruction, comme elle est codée comme normal. Exemple je mets ceci: - Code:
-
trace_on "z:\teste.txt" END car je veux voir le départ du programme, et cela me parait normal, car je veux vérifier un truc. Le résultat: - Citation :
- 07/08/2012|13:18:56*** TRACE ON ***
07/08/2012|13:18:56->line=1358 07/08/2012|13:18:56*** TRACE OFF *** Je ne suis pas d'accord! Je n'ai pas mis la fonction TRACE_OFF, et je ne vois pas la raison de ce choix. Dans mon programme, comme on n'a pas de fenêtre modale, je crois que c'est celui-là qu'emploi Klaus, pour pouvoir remplir un formulaire dans un cas particulier, dans le code d'un sous programme, j'emploi l'instruction END pour stopper le programme, vu que c'est la seule instruction qui le permette (parfois return marche aussi). J'avais besoin de vérifier le fonctionnement après, mais sans savoir pourquoi, les boutons ne fonctionnaient plus, sans aucun signe d'un message d'erreur. L'exemple que j'ai mis n'est pas concerné. Donc cette instruction n'apporte rien. De plus je trouve normal que les lignes vides ne soient montrées, mais les remarques qui permettent de suivre le programme, et de voir où on se trouve, sont aussi igniré. On est en déboguage, et pourquoi ne sont-elles pas présente? J'avais fait un petit programme pour relire le fichier trace avec les lugnes du programme, que voici d'ailleurs: - Code:
-
full_space 0 dim a$ , a% , b% , b$ , c% , c$ , d$
dlist 1 :' les lignes du programme 'tracé' dlist 2 :' réception du programme bas file_load 2,"E:\COURS_Pano\new_cours.bas" memo 3 : full_space 3 : font_name 3,"Courier New" : font_size 3 ,10 : bar_both 3
if FILE_EXISTS("z:\teste.txt") = 1 FILE_LOAD 1,"z:\teste.txt" for a%=2 to count(1)-1 a$ = item_read$(1,a%) b% = val( mid$(a$,instr(a$,"=")+1,len(a$) ) ) b$ = right$(" "+str$(b%),5 )+"|" c$ = item_read$(2,b%) if b% <> c% item_add 3,b$ + c$ rem lire les remarques d$= upper$( trim$(item_read$(2,b%-1)) ) if c% > 0 if c% = b%-2 if left$(d$,2 ) = "' " then item_add 3,item_read$(2,b%-1) if left$( d$,4) = "REM " then item_add 3,item_read$(2,b%-1) end_if end_if c%= b% end_if next a% FILE_SAVE 3,"z:\teste.bas" END_IF
J'ai essayé d'inclure les remarques, et à condition qu'il n'y ai pas de lignes vides entre sinon, tel que c'est codé, cela ne fonctionne pas. De plus j'ai mis un teste pour éviter les doublons dans les boucles, car le résultat est bizarre. - Citation :
155| repeat 156| v_explode%=instr(copie$, separ$ ) 157| if v_explode%>0 then check$(explode%)=left$(copie$,v_explode%-1):copie$=mid$(copie$,v_explode%+1,len(copie$)):explode%=explode%+1 157| if v_explode%>0 then check$(explode%)=left$(copie$,v_explode%-1):copie$=mid$(copie$,v_explode%+1,len(copie$)):explode%=explode%+1 157| if v_explode%>0 then check$(explode%)=left$(copie$,v_explode%-1):copie$=mid$(copie$,v_explode%+1,len(copie$)):explode%=explode%+1 157| if v_explode%>0 then check$(explode%)=left$(copie$,v_explode%-1):copie$=mid$(copie$,v_explode%+1,len(copie$)):explode%=explode%+1 157| if v_explode%>0 then check$(explode%)=left$(copie$,v_explode%-1):copie$=mid$(copie$,v_explode%+1,len(copie$)):explode%=explode%+1 158| until v_explode%=0:Nb_coord%=explode%-1 156| v_explode%=instr(copie$, separ$ ) 157| if v_explode%>0 then check$(explode%)=left$(copie$,v_explode%-1):copie$=mid$(copie$,v_explode%+1,len(copie$)):explode%=explode%+1 157| if v_explode%>0 then check$(explode%)=left$(copie$,v_explode%-1):copie$=mid$(copie$,v_explode%+1,len(copie$)):explode%=explode%+1 157| if v_explode%>0 then check$(explode%)=left$(copie$,v_explode%-1):copie$=mid$(copie$,v_explode%+1,len(copie$)):explode%=explode%+1 157| if v_explode%>0 then check$(explode%)=left$(copie$,v_explode%-1):copie$=mid$(copie$,v_explode%+1,len(copie$)):explode%=explode%+1 157| if v_explode%>0 then check$(explode%)=left$(copie$,v_explode%-1):copie$=mid$(copie$,v_explode%+1,len(copie$)):explode%=explode%+1 158| until v_explode%=0:Nb_coord%=explode%-1 156| v_explode%=instr(copie$, separ$ ) 157| if v_explode%>0 then check$(explode%)=left$(copie$,v_explode%-1):copie$=mid$(copie$,v_explode%+1,len(copie$)):explode%=explode%+1 157| if v_explode%>0 then check$(explode%)=left$(copie$,v_explode%-1):copie$=mid$(copie$,v_explode%+1,len(copie$)):explode%=explode%+1 157| if v_explode%>0 then check$(explode%)=left$(copie$,v_explode%-1):copie$=mid$(copie$,v_explode%+1,len(copie$)):explode%=explode%+1 157| if v_explode%>0 then check$(explode%)=left$(copie$,v_explode%-1):copie$=mid$(copie$,v_explode%+1,len(copie$)):explode%=explode%+1 157| if v_explode%>0 then check$(explode%)=left$(copie$,v_explode%-1):copie$=mid$(copie$,v_explode%+1,len(copie$)):explode%=explode%+1 158| until v_explode%=0:Nb_coord%=explode%-1
donc j'ai fait la modification avec if b% <> c% pour n'avoir qu'une ligne, entre les boucles: - Citation :
155| repeat 156| v_explode%=instr(copie$, separ$ ) 157| if v_explode%>0 then check$(explode%)=left$(copie$,v_explode%-1):copie$=mid$(copie$,v_explode%+1,len(copie$)):explode%=explode%+1 158| until v_explode%=0:Nb_coord%=explode%-1 156| v_explode%=instr(copie$, separ$ ) 157| if v_explode%>0 then check$(explode%)=left$(copie$,v_explode%-1):copie$=mid$(copie$,v_explode%+1,len(copie$)):explode%=explode%+1 158| until v_explode%=0:Nb_coord%=explode%-1 156| v_explode%=instr(copie$, separ$ ) 157| if v_explode%>0 then check$(explode%)=left$(copie$,v_explode%-1):copie$=mid$(copie$,v_explode%+1,len(copie$)):explode%=explode%+1 158| until v_explode%=0:Nb_coord%=explode%-1
Le programme étant: - Code:
-
repeat v_explode%=instr(copie$, separ$ ) if v_explode%>0 then check$(explode%)=left$(copie$,v_explode%-1):copie$=mid$(copie$,v_explode%+1,len(copie$)):explode%=explode%+1 until v_explode%=0:Nb_coord%=explode%-1 J'ai fait aussi l'essai de mettre 2 appels de trace_on avec des noms différents, vu que dès qu'un END est rencontré, il arrète, mais j'obtiens une erreur sur trace. Je ne sais pas ce que vous en pensez, mais pour moi, cette instruction est à revoir. Désolé! C'est dommage qu'il y ait des auts de lignes dans les citations, cela trouble la lecture, mais on m'appelle. |
| | | Invité Invité
| Sujet: Re: bug sur TRON, et réflexion sur cette instruction Mar 7 Aoû 2012 - 21:09 | |
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| | | | Severin
Nombre de messages : 547 Localisation : Braunschweig / Germany Date d'inscription : 13/12/2010
| Sujet: Re: bug sur TRON, et réflexion sur cette instruction Mar 7 Aoû 2012 - 21:39 | |
| @ Cosmos
Deine Programme verstehe ich nicht. Du programmierst für mein Wissen auf höchstem Nivau. Sonst würde ich antworten. Aber auch meine Beiträge sind nicht der Besteller. Mal sehen wie mein File System ankommt. Severin
Je ne comprends pas vos programmes. Vous programmez à ma connaissance au plus haut Nivau. Sinon je répondrais. Mais mes messages ne sont pas le client. Voyons comment mon système de fichier arrive. Severin | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: bug sur TRON, et réflexion sur cette instruction Mar 7 Aoû 2012 - 22:43 | |
| C'est vrai que parfois, il est dur de rentrer dans certains sujets. Certains sujets ne sont pas simples à comprendre et pour peu que l'on soit sur autre chose ou pas trop de temps, plutôt que de répondre n'importe quoi, on zappe... désolé... | |
| | | Invité Invité
| Sujet: Re: bug sur TRON, et réflexion sur cette instruction Mer 8 Aoû 2012 - 6:29 | |
| Bonjour Est-ce que vous l'utilisez, cette instruction? Elle donne le numéro des lignes que le programme parcourt pendant l'exécution. Jusque là, rien de difficile. Je m'explique: on lance trace_on "nom du fichier". On s'attend à ce que chaque ligne lue à partir de ce moment soit ajoutée dans le fichier. Ors, dès qu'elle rencontre END, le fichier est fermé. En Panoramic le mot END, qui devrait être la fin, est au contraire le début du programme. On a seulement fait la préparation du programme. Elle arrête le listage avant même qu'on est fait quoi que ce soit. Est-il besoin de lister l'instalation? Dans mon programme, selon l'endroit où on place cette instruction, j'ai aussi des arrèts sur return. Cette instruction n'est en généralement pas faite pour déboguer quelques lignes. On emploi d'autres méthodes, comme message contenu d'une variable. Là où est est intéressante, elle est stoppée.
Ensuite les lignes de remarque, ne sont pas listée. Je comprend Jack, qui se dit, on regarde le numéro, et on regarde le programme, la ligne en cours qui correspond, et évidemment on voit les remarques si elles existent. Cette méthode, je ne la conteste pas. Mais selon l'emplacement où on met l'instruction, j'ai parfois une liste de 200, 300 lignes. Imaginez le travail que cela donne pour parcourir tout un programme, où il faut remonter, puis redescendre continuellement pour suivre les lignes. D'où le programme que j'ai fait en vitesse, pour relire les lignes listées, à la place des numéros. Et là, je vois qu'on ne voit pas les remarques.
Je pense aussi qu'il y ait aussi la première ligne de teste comme IF ..., dans les testes à plusieurs lignes, pour savoir ce qui n'est pas retenu dans ce teste, et mieux comprendre.
J'avais fait un programme TRACE, qui fonctionnait très bien, et me permettait de suivre les lignes du programme, avec le contenu d'une variable à l'emplacement de la ligne. Mais maintenant, chaque fois que je veux l'utiliser, il se bloque rapidement, avec des erreurs comme: pas de repeat... Avant cela ne se faisait pas. Comme si le parser de Panoramic avait été modifié. Je trouve que Panoramic se bloque plus facilement qu'avant. Quand je termine un programme qui marche, souvent j'ai une boite de message qui me dit que le programme ne s'est pas terminé normalement, et demande si il faut envoyer le message d'erreur. Evidemment je répond non. A noter que mes programme sont lancés à partir d'une fonction CHAIN. J'ai du reprendre PsPad, vu que plus d'une fois, sans savoir pourquoi, Panoramic se ferme sans raison.
Beaucoup de bla bla bla, mais les réponses à mes question: que Neni! (je plaint Severin pour la traduction).
Dernière édition par cosmos70 le Mer 8 Aoû 2012 - 8:28, édité 1 fois |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: bug sur TRON, et réflexion sur cette instruction Mer 8 Aoû 2012 - 7:21 | |
| J'avoue que jusqu'à présent, je n'utilise jamais trace mais mais plutôt une valeur dans la caption de la fenêtre 0, un stop ou un message à l'écran avec une valeur qu'en j'arrive à un point donné. En tout cas Cosmos, là ton explication était super claire (et ce n'est pas toujours évident de s'expliquer clairement, j'en sais quelque chose .... ) | |
| | | Contenu sponsorisé
| Sujet: Re: bug sur TRON, et réflexion sur cette instruction | |
| |
| | | | bug sur TRON, et réflexion sur cette instruction | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |