Mai 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 | 31 | | | Calendrier |
|
| | Un petit programme d'empilage d'include | |
| | Auteur | Message |
---|
Invité Invité
| Sujet: Un petit programme d'empilage d'include Mer 30 Mai 2012 - 14:12 | |
| Voici un petit programme qui accumule les include dans un fichier. C'est une chose qui existe déjà dans le plugiciel, mais peut ne l'utiliseront, de plus dans la version actuelle il y a une erreur. Si deux includes sont sur deux lignes qui se suive, le dexième est ignoré. Ce programme permet de voir la ligne concernée lors d'une erreur. En appuyant sut <GO>, on fait le choix du programme d'appel. ensuite chaque fois qu'il y a un include, il y a un arrêt pour voir l'include. il faut appuyer sur <continuer> pour voir la suite. A la fin, en appyant sur le dernier bouton on a l'affichage des lignes. - Code:
-
' assemblage particulier des includes pour contrôle ' ' H:\Teste\Fini\assemble include.bas
full_space 0 label go ,sauve , arret ,numero dim a$,b$,a%,b% ,f$ , reprise% button 1:caption 1,"go":on_click 1,go
memo 2:top 2,30:height 2,height(0)-40:width 2,screen_x/2-50:color 2,255,255,230 : bar_both 2 list 3:top 3,30:height 3,height(2)-25:width 3,width(2) :left 3,width(2) button 4:left 4,100:caption 4,"sauve":on_click 4,sauve button 7:left 7,200:caption 7,"continuer" :on_click 7,arret:inactive 7 button 8:left 8,300:caption 8,"numéro prg":on_click 8,numero:inactive 8
open_dialog 5 save_dialog 6 end go: filter 5,"ouvrir|*.bas" : f$=file_name$(5) if f$ <> "_" file_load 2,f$ if count(2) > 0 ' recherche include a%=1 repeat a$ = item_read$(2,a%) if left$( trim$(upper$(a$)),9) = "#INCLUDE " a$=trim$(a$) : f$=mid$(a$,instr(a$,chr$(34)) +1,len(a$)) : f$=left$(f$,instr(f$,chr$(34)) -1) item_delete 2,a% : reprise%=a% : file_load 3,f$ if count(3) > 0 for b%=1 to count(3) : item_insert 2,a%,item_read$(3,b%) : a%=a%+1 : next b% active 7 :end arret: inactive 7 end_if a%=reprise% end_if a%=a%+1 until a% > count(2) active 8 end_if end_if return
sauve: f$=file_name$(6) if f$ <> "_" if right$(f$,4)<> ".bas" then f$=f$+".bas" file_save 2,f$ end_if return
numero: clear 3 for a%=1 to count(2) item_add 3,right$(" "+str$(a%),5)+"| "+item_read$(2,a%) next a% return
|
| | | papydall
Nombre de messages : 7002 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Un petit programme d'empilage d'include Mer 30 Mai 2012 - 16:56 | |
| Salut Cosmos 70 J’ai testé : très intéressant ce programme. Au démarrage du programme, le bouton ‘sauve’ est actif (il ne le devrait pas). J’ai donc appuyé dessus pour voir. J’ai donné un nom de fichier et j’ai enregistré un fichier vide ! Pour corriger ce bug (ou oubli de ta part), j’ai ajouté en fin de ligne 10 ‘ INACTIVE 4’ et dans le sous-programme go, juste avant RETURN, j’ai ajouté ‘ACTIVE 4’ Ai-je tort ? A+ | |
| | | Invité Invité
| Sujet: Re: Un petit programme d'empilage d'include Mer 30 Mai 2012 - 22:14 | |
| Tu as tout à fait raison. Je vais donné le pourquoi de ceci. J'avais un problème avec le plugiciel qui a actuellement 5 includes, et je me suis aperçu que mon programme ne compilait pas 2 appels includes sur des lignes qui se suive. J'ai donc fait ce programme pour comprendre ce qui se passait. J'ai mis le bouton sauve au départ pour le récupérer. Mais je ne m'en suis servi qu'une fois. Pourquoi? car avec Panoramic, il aurait fallu à chaque fois que je supprime l'onglet, et rouvre le nouveau programme après les modifications. Ensuite j'ai procédé par copier le memo, pour le coller sur la fenêtre de Panoramic. Ce qui fait que je me suis désintéressé du bouton sauve. Je pense qu'un bouton copier serait plus judicieux.
Le programme fonctionnant, je me suis dis qu'il avait sa place sur le forum. Tu as raison pour les modifications. |
| | | Invité Invité
| Sujet: Re: Un petit programme d'empilage d'include Mer 30 Mai 2012 - 22:40 | |
| Je remet ici le programme avec les modifications, mais je ne comprend pas le message d'erreur. J'ai un message d'erreur sur un bouton ligne 40, pour: - Code:
-
active 4 avec le message suivant: (46)Not correct expression in OBJECT number : . Line : 40 - Code:
-
' assemblage particulier des includes pour contrôle ' ' H:\Teste\Fini\assemble include.bas
full_space 0 label go ,sauve , arret ,numero dim a$,b$,a%,b% ,f$ , reprise% button 1:caption 1,"go":on_click 1,go
memo 2:top 2,30:height 2,height(0)-40:width 2,screen_x/2-50:color 2,255,255,230 : bar_both 2 list 3:top 3,30:height 3,height(2)-25:width 3,width(2) :left 3,width(2) button 4:left 4,100:caption 4,"sauve" :on_click 4,sauve : inactive 4 button 7:left 7,200:caption 7,"continuer" :on_click 7,arret : inactive 7 button 8:left 8,300:caption 8,"numéro prg":on_click 8,numero: inactive 8
open_dialog 5 save_dialog 6 end go: filter 5,"ouvrir|*.bas" : f$=file_name$(5) if f$ <> "_" file_load 2,f$ if count(2) > 0 ' recherche include a%=1 repeat a$ = item_read$(2,a%) if left$( trim$(upper$(a$)),9) = "#INCLUDE " a$=trim$(a$) : f$=mid$(a$,instr(a$,chr$(34)) +1,len(a$)) : f$=left$(f$,instr(f$,chr$(34)) -1) item_delete 2,a% : reprise%=a% : file_load 3,f$ if count(3) > 0 for b%=1 to count(3) : item_insert 2,a%,item_read$(3,b%) : a%=a%+1 : next b% active 7 :end arret: inactive 7 end_if a%=reprise% end_if a%=a%+1 until a% > count(2) active 8 active 4 - end_if end_if return
sauve: f$=file_name$(6) if f$ <> "_" if right$(f$,4)<> ".bas" then f$=f$+".bas" file_save 2,f$ end_if return
numero: clear 3 for a%=1 to count(2) item_add 3,right$(" "+str$(a%),5)+"| "+item_read$(2,a%) next a% return
Une fois le programme dépilé. A noter que le bouton est devenu actif, et que je peux cliquer dessus. Je me souviens que cet après-midi, sans aucune raison, et sans aucun message, Panoramic a disparu avec tous mes onglets, sans que je puisse savoir pourquoi. J'ai ce comportement avec active maintenant, mais je ne sais pas si il y a un rapport. |
| | | papydall
Nombre de messages : 7002 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Un petit programme d'empilage d'include Mer 30 Mai 2012 - 23:45 | |
| Salut Cosmos70 J’ai déplacé la ligne 40 ‘ACTIVE 4’ après les 2 ‘END_IF’, juste avant ‘RETURN’ et ça marche. | |
| | | Invité Invité
| Sujet: Re: Un petit programme d'empilage d'include Mer 30 Mai 2012 - 23:58 | |
| J'ai fait l'essai, juste pour voir, car cela me me parait pas normal, d'avoir cette erreur. Résultat: identique. Je rapuis su GO, là il se plante!. Il va encore falloir que je redémarre mon ordi. Savoir pourquoi ce problème existe! ça me dépasse. |
| | | papydall
Nombre de messages : 7002 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Un petit programme d'empilage d'include Jeu 31 Mai 2012 - 0:00 | |
| Le programme fonctionne aussi correctement si on place le ‘ACTIVE 4’ entre les 2 ‘END_IF’
A+ | |
| | | papydall
Nombre de messages : 7002 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Un petit programme d'empilage d'include Jeu 31 Mai 2012 - 0:28 | |
| @Cosmos70 J’ai modifié un peu ton programme : j’ai ajouté un bouton ‘Quitter’ Voici ce que ça donne. - Code:
-
' assemblage particulier des includes pour contrôle ' ' H:\Teste\Fini\assemble include.bas
full_space 0 label go ,sauve , arret ,numero ,quit dim a$,b$,a%,b% ,f$ , reprise% button 1:caption 1,"go":on_click 1,go
memo 2:top 2,30:height 2,height(0)-40:width 2,screen_x/2-50:color 2,255,255,230 : bar_both 2 list 3:top 3,30:height 3,height(2)-25:width 3,width(2) :left 3,width(2) button 4:left 4,100:caption 4,"sauve" :on_click 4,sauve : inactive 4 button 7:left 7,200:caption 7,"continuer" :on_click 7,arret : inactive 7 button 8:left 8,300:caption 8,"numéro prg":on_click 8,numero: inactive 8 button 9:left 9,400:caption 9,"Quitter":on_click 9,quit:' ajouté par papydall open_dialog 5 save_dialog 6 end go: filter 5,"ouvrir|*.bas" : f$=file_name$(5) if f$ <> "_" file_load 2,f$ if count(2) > 0 ' recherche include a%=1 repeat a$ = item_read$(2,a%) if left$( trim$(upper$(a$)),9) = "#INCLUDE " a$=trim$(a$) : f$=mid$(a$,instr(a$,chr$(34)) +1,len(a$)) : f$=left$(f$,instr(f$,chr$(34)) -1) item_delete 2,a% : reprise%=a% : file_load 3,f$ if count(3) > 0 for b%=1 to count(3) : item_insert 2,a%,item_read$(3,b%) : a%=a%+1 : next b% active 7 :end arret: inactive 7 end_if a%=reprise% end_if a%=a%+1 until a% > count(2) active 8 ' active 4 - end_if active 4 :' déplacé ici end_if return
sauve: f$=file_name$(6) if f$ <> "_" if right$(f$,4)<> ".bas" then f$=f$+".bas" file_save 2,f$ end_if return
numero: clear 3 for a%=1 to count(2) item_add 3,right$(" "+str$(a%),5)+"| "+item_read$(2,a%) next a% return
' papydall quit: terminate return
| |
| | | Invité Invité
| Sujet: Re: Un petit programme d'empilage d'include Jeu 31 Mai 2012 - 23:13 | |
| En jetant un oeil sur le programme avant de fermer, je viens de trouver la raison de l'erreur. Si j'en parle, c'est pour qu'on prenne le temps de vérifier si ce cas n'existe pas. À la ligne 40, qui maintenant est vide, j'avais vers la fin de la ligne le signe "-" qui n'avait rien à faire là. Surement une frappe imprévue, mais pas vraiment visible lorsqu'on ne le sait pas. Cette fois-ci il y a une logique pour une vraie erreur, alors qu'autrement ça n'avait pas de sens. Maintenant Il y a du travail demain. Je viens de vérifier, le signe moins est dans le script publié. |
| | | Contenu sponsorisé
| Sujet: Re: Un petit programme d'empilage d'include | |
| |
| | | | Un petit programme d'empilage d'include | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |