| Nouvelle version | |
|
|
|
Auteur | Message |
---|
Invité Invité
| Sujet: Re: Nouvelle version Lun 26 Nov 2012 - 13:03 | |
| Le déroulement du programme est le suivant pour analyser celui-ci: labels() variables() form0() GUI() initialisations() start3: analyser_dossiers() lister_fichiers(ext$) traiter_fichiers() Je le précise, car le système que tu utilises n'est pas évident au premier regard. Il te convient Klaus, mais franchement je n'aime pas. Maintenant dans mes programmes, j'y inclus les lignes suivantes jusqu'à ce qu'il soit au point: à chaque procédure ou sous programme, en dessous: o("nom de la procédure") et la procédure suivante: - Code:
-
sub o(q$) ' ici 1000 if object_exists(1000) = 0 then list 1000:left 1000,650:width 1000,200:height 1000,height(0)-50 item_add 1000,q$:file_save 1000,"c:\PANO\klaus.txt":' ou autre évidemment end_sub |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Nouvelle version Lun 26 Nov 2012 - 13:10 | |
| @Klaus,
Non je n'ai pas regardé ton programme, si Cosmos ou Papydall ne trouvent pas je doute que j'en soit capable...
Je voulais simplement montrer à Jack que le code (corrigé) de Nardo ne posait pas de problème.
A+ | |
|
| |
Invité Invité
| Sujet: Re: Nouvelle version Lun 26 Nov 2012 - 13:50 | |
| Je ne pense pas que Klaus ou Papydall, tout comme moi, mets en doute tes remarques. Si tu confirmes que cela marche maintenant, c'est que le problème que tu avais remarqué était résolu. Moi, je n'ai pas regardé le code de Nardo, vu que s'il est résolu, je ne trouverai pas de problème. Il doit y avoir deux problèmes. Donc il en reste un.
Excuse-moi Klaus, mais mes remarques tout du coup ne valent rien. Je n'ai pas pensé à télécharger la version d'hier. Je me rends compte maintenant de mon erreur. Je lien a été enlevé je ne peux donc pas confirmer.
On n’arrête pas de se croiser!
Dernière édition par cosmos70 le Lun 26 Nov 2012 - 13:57, édité 2 fois |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Nouvelle version Lun 26 Nov 2012 - 13:52 | |
| | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Nouvelle version Lun 26 Nov 2012 - 16:30 | |
| Je crois qu'il y a un malentendu, je ne dit pas, Cosmos, que je mets en doute tes remarques, je répondais simplement à Klaus que je n'avait pas testé son code pour la raison que si toi ou Papydall n'on pas trouvé ce qui ne va pas je ne crois pas que je puisse faire mieux que vous deux.
Pour montrer ma bonne volonté je vais y regarder...
A+
PS: le lien que Jack a donné est bon, je l'ai utilisé ce matin
*** annulé. Voir plus loin pour une nouvelle version ***
| |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Nouvelle version Lun 26 Nov 2012 - 17:14 | |
| @tous
Petite remarque : Le code attribué à Nardo26 est en fait le mien. Je l’ai publié pour confirmer un éventuel bug soulevé par Nardo26. D’après mon test, le bug est corrigé ; quant au code de Klaus, je vais y retourner pour essayer peut-être de comprendre pourquoi ça ne va pas !
A+
| |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Nouvelle version Lun 26 Nov 2012 - 18:11 | |
| J'ai essayé de trouver ce qui ne va pas dans le code de Klaus.
Je sèche....
J'ai pensé que au sub analyser_dossiers() il manquait: else file_find_close:' JC end_if à partir de la ligne 117, mais je suis pas convaincu.
Par contre j'ai peut-être quelque chose d'intéressant c'est la variable s$ qui est globale et que l'on trouve aussi en local. Et aussi le fichier liste source se remplit une nouvelle fois au deuxième lancement (il n'y a pas de clear)
Voila pour le moment. | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Nouvelle version Lun 26 Nov 2012 - 18:31 | |
| Si on met en Rem l’appel à la sub analyser_dossier(), tout devient correct. Le problème est sans doute dans la sub analyser_dossier()
| |
|
| |
Invité Invité
| Sujet: Re: Nouvelle version Lun 26 Nov 2012 - 19:00 | |
| Je viens de télécharger le fichier grâce au lien de Jean-Claude. Donc je valide toutes les remarques que j'avais fait avant. Je viens de regarder la sub en question Papydall, je ne vois rien à redire. La variable f$ a bien le nom du fichier à ouvrir, et celui-ci existe, mais ne peut l'ouvrir. |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Nouvelle version Lun 26 Nov 2012 - 19:36 | |
| @Papydall: la sub analyser_dossier() est la procédure qui est chargée de parcourir un dossier et de mémoriser tous les sous-dossiers. Evidemment, si tu court-circuites ce traitement, il n'y a plus de problèmes, mais cette procédure est justement la raison d'être de ce programme ! | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Nouvelle version Mar 27 Nov 2012 - 2:55 | |
| @Klaus J’ai bien étudié ton code : Le code est correct, il n’y a rien à dire. J’ai soupconné FILE_FIND_FIRST$ et FILE_FIND_NEXT$ mais j’ai pù m’en rendre compte que le bug a été corrigé pour ces 2 variables système.(voir le code suivant) Il y a certainement autre chose qui fait que le système ne peut plus ouvrir un fichier bien que la fonction FILE_EXISTS(f$) renvoie la valeur 1 , donc le fichier f$ existe bel et bien. - Code:
-
dim dos$, fich$ dos$ = "D:\test" : ' modifier ce dossier selon votre choix fich$ = dos$ + "\essai.txt"
cree_dossier(dos$) : ' On crée un dossier cree_fichier(fich$) : ' dans lequel on crée un fichier efface_fichier() : ' On efface le fichier précedement crée supprime_dossier() : ' On supprime le dossier crée qui est devenu vide
message "terminé" terminate end ' ***************************************************************************** SUB cree_dossier(dos$) if dir_exists(dos$) = 0 then dir_make dos$ END_SUB ' ****************************************************************************** SUB cree_fichier(fich$) file_open_write 1,fich$ file_writeln 1, "Salut!" file_close 1 END_SUB ' ****************************************************************************** SUB efface_fichier() DIM_LOCAL a$ dir_change dos$ a$ = file_find_first$ : ' Le bug de FILE_FIND_FIRST$ est corrigé. while a$ <> "_" file_delete a$ a$ = file_find_next$ : ' Ainsi que celui de FILE_FIND_NEXT$. end_while file_find_close END_SUB ' ****************************************************************************** SUB supprime_dossier() dir_change ".." rmdir dos$ END_SUB ' ******************************************************************************
| |
|
| |
Invité Invité
| Sujet: Re: Nouvelle version Mar 27 Nov 2012 - 3:49 | |
| Comme je l'avais souligné, lorsqu'on a parlé de ce problème, je me demande si ce n'est pas Windows qui est en cause. J'ai eu le même problème en faisant la même chose avec AutoIt, lorsque j'ai voulu faire un plugin pour Panoramic. Ne pouvant r'ouvrir un fichier avec AutoIt, j'ai repris la suite avec un programme Panoramic qui complétait AutoIt. |
|
| |
Jack Admin
Nombre de messages : 2395 Date d'inscription : 28/05/2007
| Sujet: Re: Nouvelle version Mar 27 Nov 2012 - 6:05 | |
| J'ai étudié hier soir le code de Klaus, il me parait correct. Pourtant il est impossible d'ouvrir le fichier, alors qu'il existe et que son nom est correct. Je continuerai d'analyser plus tard. | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Nouvelle version Mar 27 Nov 2012 - 7:43 | |
| Merci Jack pour cette nouvelle version ! Je n'ai pas eu encore vraiment le temps de me pencher sur le problème car j'ai les renforts de mon bac de 300 litres qui ont lâchés et il a fallu que je m'occupe de lui en urgence avant que je retrouve mon salon inondé... Le bac étant réparé depuis hier soir, je vais pouvoir jeter un coup d'oeil sur le cas "Klaus"... | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Nouvelle version Mar 27 Nov 2012 - 17:36 | |
| Si les renforts de ton bac de 300 litres ont lâché (et non lâché s), ce n’est certainement pas à cause du changement climatique ! Heureusement qu’il a fallu que tu t’occupasses de lui avant l’inondation de ton salon. Il y a peut-être un bug dans les renforts ! Bon, j'arrête | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Nouvelle version Mer 28 Nov 2012 - 17:44 | |
| C'est clair que les renforts étaient buggués... c'est réparé mais cela reste quand même un mauvais signe... D'ici que mes autres joints me lâchent... (il faut que je m'occupe sérieusement de mon projet de 600 Litres, quitte à changer/réparer autant prendre plus grand ) Concernant le "cas Klaus" : je viens de tester et je ne vois pas de failles dans son programme... L'ordre des FIRST/NEXT/CLOSE/DIR_CHANGE s'enchainent dans le bon ordre. il doit bien rester un bug quelque part... mais pas forcement sur les FILE_FIND... J'ai des doutes sur le FILE_OPEN... | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Nouvelle version Mer 28 Nov 2012 - 18:12 | |
| Je constate que vous êtes maintenant plusieurs à confirmer que mon programme semble correct, y ncompris Jack d'ailleurs.
Conclusion logique: si le programme est correct, le problème doit venir de Panoramic. Et là, seul Jack pourra faire avancer le schmilblick.
Quant à l'hypothèse du FILE_OPEN, je n'y crois guère. Le bug ne se produit qu'après une boucle de FILE_DINF_xxx ayant produit une liste de noms de fichiers, et l'utilisation du premier nom de la liste produit le problème. Pire même: si, au lieu de prendre un nom à partir de la liste, on code un nom de fichier en dur (mais forcément un nom d'un fichier existant dans le répertoire en question), il y a toujours erreur ! Je soupçonne un problème de buffeur, de mémoire interne ou similaire qui n'est pas complètement purgé ou libéré à la fin de la boucle FILE_FIND_xxx. Mais ça, c'est juste une intuition. | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Nouvelle version Jeu 29 Nov 2012 - 0:18 | |
| SALUT TOUT LE MONDE. @Klaus @Tous EUREKA ! IL N’Y A PAS DE BUG !!Mais il y a une erreur dans le code de Klaus dans la SUB Lister_fichiers(ext$) ligne 131 - Code:
-
for n%=1 to count(no_l1%)
A remplacer comme ceci - Code:
-
for n%=1 to count(no_l1%)-1
Et tout devient parfait ! ESSAYEZ VOUS-MEMES car moi je ne crois pas mes yeux ! | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Nouvelle version Jeu 29 Nov 2012 - 0:40 | |
| PAPYDALL, TU EST LE MEILLEUR !
J'ai passé des jours sur ce problème, et je n'ai rien vu ! Dire que je me suis laissé piéger par une ligne d'information que j'ai ajouté intentionnellement dans la liste !
Alors, je présente mes excuses à tous ceux qui ont cherché avec moi, et particulièrement à Jack que j'ai alarmé pour rien !
Moi aussi, je confirme: FILE_FIND_xxx marche bien maintenant !
| |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Nouvelle version Jeu 29 Nov 2012 - 0:49 | |
| Pourquoi doit-on retrancher 1 à count(no_l1%) ? C’est tout simplement parce que dans SUB Analyser_dossiers(), à la dernière ligne on a ajouté un item qui ne devrait pas y être ! - Code:
-
item_add no_l1%,"*** terminé ***"
Conclusion : pour que le programme s’exécute correctement, il faut : Soit retrancher 1 à la borne supérieure de la boucle en ligne 131 Soit supprimer la ligne 125 : item_add no_l1%, "***terminé***" | |
|
| |
Invité Invité
| Sujet: Re: Nouvelle version Jeu 29 Nov 2012 - 0:56 | |
| Bravo Papydall. C'est la ligne 135 qui fait problème: - Citation :
- item_add no_l1%,"*** terminé ***"
|
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Nouvelle version Jeu 29 Nov 2012 - 1:06 | |
| - Klaus a écrit:
- PAPYDALL, TU EST LE MEILLEUR !
J'ai passé des jours sur ce problème, et je n'ai rien vu ! Dire que je me suis laissé piéger par une ligne d'information que j'ai ajouté intentionnellement dans la liste !
Suis-je le meilleur ? N O N !J’étais simplement mal à l’aise, parce que je ne comprenais pas pourquoi ça ne marche pas alors que tout semble correct ! Puisque ça me dérange de ne pas comprendre et comme je suis (dans ce cas précis) un peu têtu, j’ai lancé un défi à moi-même pour résoudre l’énigme. Je suis content parce que j’ai fait de l’exercice à mon cerveau !
Dernière édition par papydall le Jeu 29 Nov 2012 - 2:45, édité 1 fois | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Nouvelle version Jeu 29 Nov 2012 - 1:12 | |
| Eh bien, c'est réussi ! Mille fois merci ! Et vive le forum où l'on peut poster des choses qu'on ne comprend pas et on obtient une réponse ! | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Nouvelle version Jeu 29 Nov 2012 - 2:26 | |
| Morale de cette histoire : Certes le programmeur est responsable de son code et comme on dit « dans 99% des cas, l’erreur se trouve entre la chaise et le clavier ». Mais dans ce cas précis, Panoramic ne facilite pas la tâche du programmeur ! En effet, DIR_CHANGE d$, ne signale pas d’erreur si le répertoire n’existe pas !Il n’y a pas de changement de répertoire (le répertoire en cours reste le même). Conséquence logique : le système ne peut pas ouvrir le fichier (parce qu’il est dans un autre répertoire) d’où l’erreur "(93) File does not exist … " - Code:
-
message dir_current$ dir_change zzz$ : ' ce répertoire n'existe pas : Panoramic ne signale pas d'erreur ' et le répertoire courant ne change pas! message dir_current$
@jack Si tu veux bien modifier le comportement de DIR_CHANGE pour que le système affiche une erreur lorsqu’on indique un répertoire non valide, ça serait d’une aide bien utile pour le programmeur. Merci d'avance pour tout ce que tu fais pour Panoramic dont on bénéficie tous! | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Nouvelle version Jeu 29 Nov 2012 - 7:35 | |
| Bravo Papydall ! Je ne me suis pas arrêté sur le dernier item de la liste car lors de mes tests, j’obtenais une erreur à l'ouverture du premier fichier qui était quand même présent sur le disque... | |
|
| |
Contenu sponsorisé
| Sujet: Re: Nouvelle version | |
| |
|
| |
| Nouvelle version | |
|