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 |
|
|
| Quelqu'un voit d'où vient l'erreur avec file_writeln ? | |
| | |
Auteur | Message |
---|
exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Quelqu'un voit d'où vient l'erreur avec file_writeln ? Sam 11 Fév 2012 - 19:09 | |
| Quand j'utilise la commande : - Code:
-
file_writeln 34,cible$ cible$ est une variable : cible$=table_sols(x%,y%)J'ai le message d'erreur m'indiquant que ce numéro n'est pas utilisable en écriture. (109) file number not used for writingPourtant je l'ai bien initialisé avant, avec la commande : - Code:
-
file_open_write 34,ligne$ Ligne$ est le chemin complet du fichier à écrire. Le numéro 34 n'est utilisé que dans cette partie du code, j'ai re-vérifié. J'ai même remplacé 34 par 35 qui n'existe pas non plus dans le reste du code. Le chemin du fichier n'est pas en cause je pense car dans ma première version du programme, c'est le meme chemin qui est utilisé et ça marche bien. EDIT : Je crois peut-être avoir la solution, je n'ai pas déclaré table_sols en chaine mais en entier :/
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Quelqu'un voit d'où vient l'erreur avec file_writeln ? Sam 11 Fév 2012 - 19:38 | |
| Oui, c'est le message d'erreur qui est mal adapté à la situation, mais tu as bien saisi le problème.
Il y a d'autres situation où le message d'erreur ne décrit pas réellement ce qui se passe, mais c'est toujours une indication que la ligne spécifiée a un problème. Quelque fois, c'est une virgule en trop, une variable de type entier dans une chaîne, une fonction de type chaîne utilisée hors contexte etc. Si l'erreur n'est pas évidente, ne pas hésiter à inspecter chaque composant de la ligne, et l'erreur sera certainement débusquée. | |
| | | exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Quelqu'un voit d'où vient l'erreur avec file_writeln ? Sam 11 Fév 2012 - 20:08 | |
| J'ai passé le tableau en tableau de chaine avec dim table_sols$(x%,y%)
C'est un deuxieme problème qui survient :
Je crée la chaine :
cible$=str$(x%)+","+str$(y%)+","+str$(numero%)
Je la place dans le tableau :
table_sols$(x%,y%)=cible$
j'ai le message "variable non définie dans DIM".
EDIT : C'est bon, c'est vrai qu'elle n'est pas définie dans dim, j'ai utilisé l'utilitaire "remplacer" pour remplacer toutes les occurences de table_sols en table_sols$ et il n' a pas touché au dim :/
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Quelqu'un voit d'où vient l'erreur avec file_writeln ? Sam 11 Fév 2012 - 20:10 | |
| question sans doute bête mais le Dim x% et y% est bien avant le dim table_sols$(x%,y%) et x% et y% ont bien leurs valeurs initialisées ? | |
| | | exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Quelqu'un voit d'où vient l'erreur avec file_writeln ? Sam 11 Fév 2012 - 20:12 | |
| il me remet cette fois le message du premier problème ! premier post :/ - Code:
-
file_open_write 35,ligne$ for numtable=1 to 6
ligne$=dossier$+fichier$ file_open_write 35,ligne$ ' Lit une table d'élément for y%=0 to 31 for x%=0 to 31 select numtable case 1:cible$=table_sols$(x%,y%) case 2:cible$=table_decors$(x%,y%) case 3:cible$=table_batiments$(x%,y%) case 4:cible$=table_objets$(x%,y%) case 5:cible$=table_animaux$(x%,y%) case 6:cible$=table_personnages$(x%,y%) end_select file_writeln 35,cible$ next x% next y% file_close 35
next numtable
Oui pour ta question
Dernière édition par exdragon le Sam 11 Fév 2012 - 21:56, édité 3 fois | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Quelqu'un voit d'où vient l'erreur avec file_writeln ? Sam 11 Fév 2012 - 20:45 | |
| Déjà tu ouvres deux fois de suite un fichier ligne$ avec le numéro 35 ! | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Quelqu'un voit d'où vient l'erreur avec file_writeln ? Sam 11 Fév 2012 - 21:05 | |
| Exactement, la ligne file_open_write 35,ligne$ dans la boucle est à virer comme l'a vu JL35 | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Quelqu'un voit d'où vient l'erreur avec file_writeln ? Sam 11 Fév 2012 - 21:16 | |
| Et dans la boucle sur numtable, on ouvre 6 fois le même fichier en sortie, ce qui écrase chaque fois la version précédente de sorte à avoir seulement le contenu de la table table_personnages$, à la fin. Le reste est perdu. J'ai l'impression que tu nous mets des bouts de code, des extrait, mais il n'y a pas tout ce qu'il faut pour analyser ton problème. Je te fais une suggestion, en prenant modèle sur ce que je fais chez moi, lorsque je rencontre un problème de ce genre: 1. je commence par insérer, juste devant la ligne en faute, des commandes MESSAGE xxx pour afficher, une par une, tous les éléments de la ligne concernée. Si, par exemple, cette ligne est concernée: - Code:
-
case 3:cible$=table_batiments$(x%,y%) je la transforme de cette manière: - Code:
-
case 3: message "x%="+str$(x%) message "y%="+str$(y%) message "table_batimants$(x%,y%)="+table_batiments$(x%,y%) cible$=table_batiments$(x%,y%) D'abord, ça te permet de suivre l'évolution des valeurs, et si une erreur se déclenche, elle le fera sur une des lignes message ce qui te donne alors la variable fautive. Et si ce n'est pas le cas, tu as la liste des valeurs en cours au moment du crash. 2. si je n'y arrive pas par la méthode (1), j'extrais le code en question dans un nouveau petit fichier BAS, et j'essaie de faire marcher, en lui recréant son environnement, comme les DIM, l'initialisation des variables, etc. Si ça marche en environnement restraint, c'est que ton problème vient probablement du déroulement dynamique de ton programme, et il convient alors d'analyser la logique et le flux dans ton programme. Si tu reproduis l'erreur en environnement restraint, tu peux alors plus facilement trouver la solution que tu transposeras ensuite dans ton programme d'origine. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Quelqu'un voit d'où vient l'erreur avec file_writeln ? Sam 11 Fév 2012 - 21:34 | |
| Bien d'accord, il est impossible pour quelqu'un d'autre de tester un morceau de code extrait de son contexte, sans son environnement: variables, objets, etc., qu'il faut reconstituer. Ce qu'il faut présenter ici, pour aide, ce sont des morceaux de code exécutables par le lecteur, sinon on ne va pas (d'ailleurs on ne peut pas, en général), reconstituer le programme. Là c'était une erreur de débutant manifeste, mais ce n'est pas toujours le cas. | |
| | | exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Quelqu'un voit d'où vient l'erreur avec file_writeln ? Sam 11 Fév 2012 - 21:36 | |
| avec message j'ai une chaine qui ressemble à ça : x,y,numero par exemple : "1,1,15" ou encore "120,254,1" Donc ça corrspond à ce que j'attend, donc je ne comprend pas pour le file_writeln Merci Jl35 Sinon je me suis trompé je l'ai mis deux fois mais seulement sur ce pos, dans mon code c'est bon. Voilà j'ai corrigé le post précédent j'ai supprimé le file_open_write qui était en trop Bein le contexte, tout est là pratiquement, une boucle avec la variable numtable, qui selectionne une des tables à chaque fois, et pour chaque table on lit sa valeur 31x31 cases puisque cette table est un tableau de 31x31 cases. Le contenu de chaque case on le met dans un fichier c'est tout Je ne vois pas ce qu'il faut de plus JL35 - Citation :
Et dans la boucle sur numtable, on ouvre 6 fois le même fichier en sortie, La valeur ligne$ change pour chaque fichier mais je ne l'ai pas inclu ici pour ne pas encombrer et surtout que cela n'a rien à voir c'est tout^^ EDIT : J'ai modifié la ligne du file_write pour n'écrire que les valeurs non vides.
Dernière édition par exdragon le Sam 11 Fév 2012 - 21:53, édité 1 fois | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Quelqu'un voit d'où vient l'erreur avec file_writeln ? Sam 11 Fév 2012 - 21:50 | |
| C'est pas du jeu ! si tu édites, les commentaires qui suivent n'ont plus aucun sens pour ceux qui vont les lire ! Finalement tu as quoi comme erreur, et sur quelle ligne ?
Une remarque: les numéros pour ouverture de fichiers en lecture ou écriture n'ont rien à voir avec des numéros d'objet, personnellement je pars toujours de 1, puis les nombres suivants s'il y en a plusieurs ouverts en même temps. Un numéro 35 ça fait bizarre (mais ce n'est pas interdit ! quoiqu'il y a peut-être une limite ? dans le manuel il est dit: 'Doit être plus grand que 0 et inférieur ou égal au maximum de numéro de fichier texte permis' !).
Dernière édition par JL35 le Sam 11 Fév 2012 - 21:54, édité 1 fois | |
| | | exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Quelqu'un voit d'où vient l'erreur avec file_writeln ? Sam 11 Fév 2012 - 21:54 | |
| Ah je comprends, ta raison pour l'edit je vais le refaire
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Quelqu'un voit d'où vient l'erreur avec file_writeln ? Sam 11 Fév 2012 - 21:55 | |
| Tu devrais sortir l'ouverture du fichier de ta boucle pour les 6 table. Là, tu l'ouvres et tu le fermes sans que ça n'apporte rien. Autant l'ouvrir ace la boucle numtable et le fermer après l’exécution du next numtable.
| |
| | | exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Quelqu'un voit d'où vient l'erreur avec file_writeln ? Sam 11 Fév 2012 - 21:56 | |
| Voilà, c'est la dernière version que j'ai ça et le problème ets là :/ Quand j'utilise la commande : - Code:
-
file_writeln 34,cible$ cible$ est une variable : cible$=table_sols(x%,y%)J'ai le message d'erreur m'indiquant que ce numéro n'est pas utilisable en écriture. (109) file number not used for writingPourtant je l'ai bien initialisé avant, avec la commande : - Code:
-
file_open_write 34,ligne$ Ligne$ est le chemin complet du fichier à écrire. Le numéro 34 n'est utilisé que dans cette partie du code, j'ai re-vérifié. J'ai même remplacé 34 par 35 qui n'existe pas non plus dans le reste du code. - Code:
-
for numtable=1 to 6 ligne$=dossier$+fichier$ file_open_write 35,ligne$ ' Lit une table d'élément for y%=0 to 31 for x%=0 to 31 select numtable case 1:cible$=table_sols$(x%,y%) case 2:cible$=table_decors$(x%,y%) case 3:cible$=table_batiments$(x%,y%) case 4:cible$=table_objets$(x%,y%) case 5:cible$=table_animaux$(x%,y%) case 6:cible$=table_personnages$(x%,y%) end_select if (cible$<>"")then file_writeln 35,cible$ next x% next y% file_close 35
next numtable
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Quelqu'un voit d'où vient l'erreur avec file_writeln ? Sam 11 Fév 2012 - 21:58 | |
| Bon, j'ai reconstitué tout ce qui manque pour tester: les définitions ainsi que le chargement des tables. Puis j'exécute, et il n'y a PAS d'erreur en exécution ! Voici le code complet: - Code:
-
' lignes rajoutées pour recréer l'environnement dim numtable, x%, y% dim ligne$, dossier$, cible$, fichier$ dim table_sols$(31,31) dim table_decors$(31,31) dim table_batiments$(31,31) dim table_objets$(31,31) dim table_animaux$(31,31) dim table_personnages$(31,31) dossier$ = "C:\temp\" fichier$ = "Exdragon.txt"
' lignes rajoutées pour charger les tables for numtable=1 to 6 for y%=0 to 31 for x%=0 to 31 select numtable case 1:table_sols$(x%,y%) = "sols "+str$(x%)+","+str$(y%) case 2:table_decors$(x%,y%) = "decors "+str$(x%)+","+str$(y%) case 3:table_batiments$(x%,y%) = "batiments "+str$(x%)+","+str$(y%) case 4:table_objets$(x%,y%) = "objets "+str$(x%)+","+str$(y%) case 5:table_animaux$(x%,y%) = "animaux "+str$(x%)+","+str$(y%) case 6:table_personnages$(x%,y%) = "personnages "+str$(x%)+","+str$(y%) end_select next x% next y% next numtable
' code de Exdragon à tester for numtable=1 to 6
ligne$=dossier$+fichier$ file_open_write 35,ligne$ ' Lit une table d'élément for y%=0 to 31 for x%=0 to 31 select numtable case 1:cible$=table_sols$(x%,y%) case 2:cible$=table_decors$(x%,y%) case 3:cible$=table_batiments$(x%,y%) case 4:cible$=table_objets$(x%,y%) case 5:cible$=table_animaux$(x%,y%) case 6:cible$=table_personnages$(x%,y%) end_select file_writeln 35,cible$ next x% next y% file_close 35
next numtable
end
Par contre, comme je l'ai dit dans mon post précédent, comme le nom de fichier pour le FILE_OPEN_WRITE n'est pas changé, les fichiers s'écrasent les uns les autres, et seul le dernier persiste: - Code:
-
personnages 0,0 personnages 1,0 personnages 2,0 personnages 3,0 personnages 4,0 personnages 5,0 personnages 6,0 personnages 7,0 personnages 8,0 personnages 9,0 personnages 10,0 personnages 11,0 personnages 12,0 personnages 13,0 personnages 14,0 personnages 15,0 personnages 16,0 personnages 17,0 personnages 18,0 personnages 19,0 personnages 20,0 personnages 21,0 personnages 22,0 personnages 23,0 personnages 24,0 personnages 25,0 personnages 26,0 personnages 27,0 personnages 28,0 personnages 29,0 personnages 30,0 personnages 31,0 personnages 0,1 personnages 1,1 personnages 2,1 personnages 3,1 personnages 4,1 personnages 5,1 personnages 6,1 personnages 7,1 personnages 8,1 personnages 9,1 personnages 10,1 personnages 11,1 personnages 12,1 personnages 13,1 personnages 14,1 personnages 15,1 personnages 16,1 personnages 17,1 personnages 18,1 personnages 19,1 personnages 20,1 personnages 21,1 personnages 22,1 personnages 23,1 personnages 24,1 personnages 25,1 personnages 26,1 personnages 27,1 personnages 28,1 personnages 29,1 personnages 30,1 personnages 31,1 personnages 0,2 personnages 1,2 personnages 2,2 personnages 3,2 personnages 4,2 personnages 5,2 personnages 6,2 personnages 7,2 personnages 8,2 personnages 9,2 personnages 10,2 personnages 11,2 personnages 12,2 personnages 13,2 personnages 14,2 personnages 15,2 personnages 16,2 personnages 17,2 personnages 18,2 personnages 19,2 personnages 20,2 personnages 21,2 personnages 22,2 personnages 23,2 personnages 24,2 personnages 25,2 personnages 26,2 personnages 27,2 personnages 28,2 personnages 29,2 personnages 30,2 personnages 31,2 personnages 0,3 personnages 1,3 personnages 2,3 personnages 3,3 personnages 4,3 personnages 5,3 personnages 6,3 personnages 7,3 personnages 8,3 personnages 9,3 personnages 10,3 personnages 11,3 personnages 12,3 personnages 13,3 personnages 14,3 personnages 15,3 personnages 16,3 personnages 17,3 personnages 18,3 personnages 19,3 personnages 20,3 personnages 21,3 personnages 22,3 personnages 23,3 personnages 24,3 personnages 25,3 personnages 26,3 personnages 27,3 personnages 28,3 personnages 29,3 personnages 30,3 personnages 31,3 personnages 0,4 personnages 1,4 personnages 2,4 personnages 3,4 personnages 4,4 personnages 5,4 personnages 6,4 personnages 7,4 personnages 8,4 personnages 9,4 personnages 10,4 personnages 11,4 personnages 12,4 personnages 13,4 personnages 14,4 personnages 15,4 personnages 16,4 personnages 17,4 personnages 18,4 personnages 19,4 personnages 20,4 personnages 21,4 personnages 22,4 personnages 23,4 personnages 24,4 personnages 25,4 personnages 26,4 personnages 27,4 personnages 28,4 personnages 29,4 personnages 30,4 personnages 31,4 personnages 0,5 personnages 1,5 personnages 2,5 personnages 3,5 personnages 4,5 personnages 5,5 personnages 6,5 personnages 7,5 personnages 8,5 personnages 9,5 personnages 10,5 personnages 11,5 personnages 12,5 personnages 13,5 personnages 14,5 personnages 15,5 personnages 16,5 personnages 17,5 personnages 18,5 personnages 19,5 personnages 20,5 personnages 21,5 personnages 22,5 personnages 23,5 personnages 24,5 personnages 25,5 personnages 26,5 personnages 27,5 personnages 28,5 personnages 29,5 personnages 30,5 personnages 31,5 personnages 0,6 personnages 1,6 personnages 2,6 personnages 3,6 personnages 4,6 personnages 5,6 personnages 6,6 personnages 7,6 personnages 8,6 personnages 9,6 personnages 10,6 personnages 11,6 personnages 12,6 personnages 13,6 personnages 14,6 personnages 15,6 personnages 16,6 personnages 17,6 personnages 18,6 personnages 19,6 personnages 20,6 personnages 21,6 personnages 22,6 personnages 23,6 personnages 24,6 personnages 25,6 personnages 26,6 personnages 27,6 personnages 28,6 personnages 29,6 personnages 30,6 personnages 31,6 personnages 0,7 personnages 1,7 personnages 2,7 personnages 3,7 personnages 4,7 personnages 5,7 personnages 6,7 personnages 7,7 personnages 8,7 personnages 9,7 personnages 10,7 personnages 11,7 personnages 12,7 personnages 13,7 personnages 14,7 personnages 15,7 personnages 16,7 personnages 17,7 personnages 18,7 personnages 19,7 personnages 20,7 personnages 21,7 personnages 22,7 personnages 23,7 personnages 24,7 personnages 25,7 personnages 26,7 personnages 27,7 personnages 28,7 personnages 29,7 personnages 30,7 personnages 31,7 personnages 0,8 personnages 1,8 personnages 2,8 personnages 3,8 personnages 4,8 personnages 5,8 personnages 6,8 personnages 7,8 personnages 8,8 personnages 9,8 personnages 10,8 personnages 11,8 personnages 12,8 personnages 13,8 personnages 14,8 personnages 15,8 personnages 16,8 personnages 17,8 personnages 18,8 personnages 19,8 personnages 20,8 personnages 21,8 personnages 22,8 personnages 23,8 personnages 24,8 personnages 25,8 personnages 26,8 personnages 27,8 personnages 28,8 personnages 29,8 personnages 30,8 personnages 31,8 personnages 0,9 personnages 1,9 personnages 2,9 personnages 3,9 personnages 4,9 personnages 5,9 personnages 6,9 personnages 7,9 personnages 8,9 personnages 9,9 personnages 10,9 personnages 11,9 personnages 12,9 personnages 13,9 personnages 14,9 personnages 15,9 personnages 16,9 personnages 17,9 personnages 18,9 personnages 19,9 personnages 20,9 personnages 21,9 personnages 22,9 personnages 23,9 personnages 24,9 personnages 25,9 personnages 26,9 personnages 27,9 personnages 28,9 personnages 29,9 personnages 30,9 personnages 31,9 personnages 0,10 personnages 1,10 personnages 2,10 personnages 3,10 personnages 4,10 personnages 5,10 personnages 6,10 personnages 7,10 personnages 8,10 personnages 9,10 personnages 10,10 personnages 11,10 personnages 12,10 personnages 13,10 personnages 14,10 personnages 15,10 personnages 16,10 personnages 17,10 personnages 18,10 personnages 19,10 personnages 20,10 personnages 21,10 personnages 22,10 personnages 23,10 personnages 24,10 personnages 25,10 personnages 26,10 personnages 27,10 personnages 28,10 personnages 29,10 personnages 30,10 personnages 31,10 personnages 0,11 personnages 1,11 personnages 2,11 personnages 3,11 personnages 4,11 personnages 5,11 personnages 6,11 personnages 7,11 personnages 8,11 personnages 9,11 personnages 10,11 personnages 11,11 personnages 12,11 personnages 13,11 personnages 14,11 personnages 15,11 personnages 16,11 personnages 17,11 personnages 18,11 personnages 19,11 personnages 20,11 personnages 21,11 personnages 22,11 personnages 23,11 personnages 24,11 personnages 25,11 personnages 26,11 personnages 27,11 personnages 28,11 personnages 29,11 personnages 30,11 personnages 31,11 personnages 0,12 personnages 1,12 personnages 2,12 personnages 3,12 personnages 4,12 personnages 5,12 personnages 6,12 personnages 7,12 personnages 8,12 personnages 9,12 personnages 10,12 personnages 11,12 personnages 12,12 personnages 13,12 personnages 14,12 personnages 15,12 personnages 16,12 personnages 17,12 personnages 18,12 personnages 19,12 personnages 20,12 personnages 21,12 personnages 22,12 personnages 23,12 personnages 24,12 personnages 25,12 personnages 26,12 personnages 27,12 personnages 28,12 personnages 29,12 personnages 30,12 personnages 31,12 personnages 0,13 personnages 1,13 personnages 2,13 personnages 3,13 personnages 4,13 personnages 5,13 personnages 6,13 personnages 7,13 personnages 8,13 personnages 9,13 personnages 10,13 personnages 11,13 personnages 12,13 personnages 13,13 personnages 14,13 personnages 15,13 personnages 16,13 personnages 17,13 personnages 18,13 personnages 19,13 personnages 20,13 personnages 21,13 personnages 22,13 personnages 23,13 personnages 24,13 personnages 25,13 personnages 26,13 personnages 27,13 personnages 28,13 personnages 29,13 personnages 30,13 personnages 31,13 personnages 0,14 personnages 1,14 personnages 2,14 personnages 3,14 personnages 4,14 personnages 5,14 personnages 6,14 personnages 7,14 personnages 8,14 personnages 9,14 personnages 10,14 personnages 11,14 personnages 12,14 personnages 13,14 personnages 14,14 personnages 15,14 personnages 16,14 personnages 17,14 personnages 18,14 personnages 19,14 personnages 20,14 personnages 21,14 personnages 22,14 personnages 23,14 personnages 24,14 personnages 25,14 personnages 26,14 personnages 27,14 personnages 28,14 personnages 29,14 personnages 30,14 personnages 31,14 personnages 0,15 personnages 1,15 personnages 2,15 personnages 3,15 personnages 4,15 personnages 5,15 personnages 6,15 personnages 7,15 personnages 8,15 personnages 9,15 personnages 10,15 personnages 11,15 personnages 12,15 personnages 13,15 personnages 14,15 personnages 15,15 personnages 16,15 personnages 17,15 personnages 18,15 personnages 19,15 personnages 20,15 personnages 21,15 personnages 22,15 personnages 23,15 personnages 24,15 personnages 25,15 personnages 26,15 personnages 27,15 personnages 28,15 personnages 29,15 personnages 30,15 personnages 31,15 personnages 0,16 personnages 1,16 personnages 2,16 personnages 3,16 personnages 4,16 personnages 5,16 personnages 6,16 personnages 7,16 personnages 8,16 personnages 9,16 personnages 10,16 personnages 11,16 personnages 12,16 personnages 13,16 personnages 14,16 personnages 15,16 personnages 16,16 personnages 17,16 personnages 18,16 personnages 19,16 personnages 20,16 personnages 21,16 personnages 22,16 personnages 23,16 personnages 24,16 personnages 25,16 personnages 26,16 personnages 27,16 personnages 28,16 personnages 29,16 personnages 30,16 personnages 31,16 personnages 0,17 personnages 1,17 personnages 2,17 personnages 3,17 personnages 4,17 personnages 5,17 personnages 6,17 personnages 7,17 personnages 8,17 personnages 9,17 personnages 10,17 personnages 11,17 personnages 12,17 personnages 13,17 personnages 14,17 personnages 15,17 personnages 16,17 personnages 17,17 personnages 18,17 personnages 19,17 personnages 20,17 personnages 21,17 personnages 22,17 personnages 23,17 personnages 24,17 personnages 25,17 personnages 26,17 personnages 27,17 personnages 28,17 personnages 29,17 personnages 30,17 personnages 31,17 personnages 0,18 personnages 1,18 personnages 2,18 personnages 3,18 personnages 4,18 personnages 5,18 personnages 6,18 personnages 7,18 personnages 8,18 personnages 9,18 personnages 10,18 personnages 11,18 personnages 12,18 personnages 13,18 personnages 14,18 personnages 15,18 personnages 16,18 personnages 17,18 personnages 18,18 personnages 19,18 personnages 20,18 personnages 21,18 personnages 22,18 personnages 23,18 personnages 24,18 personnages 25,18 personnages 26,18 personnages 27,18 personnages 28,18 personnages 29,18 personnages 30,18 personnages 31,18 personnages 0,19 personnages 1,19 personnages 2,19 personnages 3,19 personnages 4,19 personnages 5,19 personnages 6,19 personnages 7,19 personnages 8,19 personnages 9,19 personnages 10,19 personnages 11,19 personnages 12,19 personnages 13,19 personnages 14,19 personnages 15,19 personnages 16,19 personnages 17,19 personnages 18,19 personnages 19,19 personnages 20,19 personnages 21,19 personnages 22,19 personnages 23,19 personnages 24,19 personnages 25,19 personnages 26,19 personnages 27,19 personnages 28,19 personnages 29,19 personnages 30,19 personnages 31,19 personnages 0,20 personnages 1,20 personnages 2,20 personnages 3,20 personnages 4,20 personnages 5,20 personnages 6,20 personnages 7,20 personnages 8,20 personnages 9,20 personnages 10,20 personnages 11,20 personnages 12,20 personnages 13,20 personnages 14,20 personnages 15,20 personnages 16,20 personnages 17,20 personnages 18,20 personnages 19,20 personnages 20,20 personnages 21,20 personnages 22,20 personnages 23,20 personnages 24,20 personnages 25,20 personnages 26,20 personnages 27,20 personnages 28,20 personnages 29,20 personnages 30,20 personnages 31,20 personnages 0,21 personnages 1,21 personnages 2,21 personnages 3,21 personnages 4,21 personnages 5,21 personnages 6,21 personnages 7,21 personnages 8,21 personnages 9,21 personnages 10,21 personnages 11,21 personnages 12,21 personnages 13,21 personnages 14,21 personnages 15,21 personnages 16,21 personnages 17,21 personnages 18,21 personnages 19,21 personnages 20,21 personnages 21,21 personnages 22,21 personnages 23,21 personnages 24,21 personnages 25,21 personnages 26,21 personnages 27,21 personnages 28,21 personnages 29,21 personnages 30,21 personnages 31,21 personnages 0,22 personnages 1,22 personnages 2,22 personnages 3,22 personnages 4,22 personnages 5,22 personnages 6,22 personnages 7,22 personnages 8,22 personnages 9,22 personnages 10,22 personnages 11,22 personnages 12,22 personnages 13,22 personnages 14,22 personnages 15,22 personnages 16,22 personnages 17,22 personnages 18,22 personnages 19,22 personnages 20,22 personnages 21,22 personnages 22,22 personnages 23,22 personnages 24,22 personnages 25,22 personnages 26,22 personnages 27,22 personnages 28,22 personnages 29,22 personnages 30,22 personnages 31,22 personnages 0,23 personnages 1,23 personnages 2,23 personnages 3,23 personnages 4,23 personnages 5,23 personnages 6,23 personnages 7,23 personnages 8,23 personnages 9,23 personnages 10,23 personnages 11,23 personnages 12,23 personnages 13,23 personnages 14,23 personnages 15,23 personnages 16,23 personnages 17,23 personnages 18,23 personnages 19,23 personnages 20,23 personnages 21,23 personnages 22,23 personnages 23,23 personnages 24,23 personnages 25,23 personnages 26,23 personnages 27,23 personnages 28,23 personnages 29,23 personnages 30,23 personnages 31,23 personnages 0,24 personnages 1,24 personnages 2,24 personnages 3,24 personnages 4,24 personnages 5,24 personnages 6,24 personnages 7,24 personnages 8,24 personnages 9,24 personnages 10,24 personnages 11,24 personnages 12,24 personnages 13,24 personnages 14,24 personnages 15,24 personnages 16,24 personnages 17,24 personnages 18,24 personnages 19,24 personnages 20,24 personnages 21,24 personnages 22,24 personnages 23,24 personnages 24,24 personnages 25,24 personnages 26,24 personnages 27,24 personnages 28,24 personnages 29,24 personnages 30,24 personnages 31,24 personnages 0,25 personnages 1,25 personnages 2,25 personnages 3,25 personnages 4,25 personnages 5,25 personnages 6,25 personnages 7,25 personnages 8,25 personnages 9,25 personnages 10,25 personnages 11,25 personnages 12,25 personnages 13,25 personnages 14,25 personnages 15,25 personnages 16,25 personnages 17,25 personnages 18,25 personnages 19,25 personnages 20,25 personnages 21,25 personnages 22,25 personnages 23,25 personnages 24,25 personnages 25,25 personnages 26,25 personnages 27,25 personnages 28,25 personnages 29,25 personnages 30,25 personnages 31,25 personnages 0,26 personnages 1,26 personnages 2,26 personnages 3,26 personnages 4,26 personnages 5,26 personnages 6,26 personnages 7,26 personnages 8,26 personnages 9,26 personnages 10,26 personnages 11,26 personnages 12,26 personnages 13,26 personnages 14,26 personnages 15,26 personnages 16,26 personnages 17,26 personnages 18,26 personnages 19,26 personnages 20,26 personnages 21,26 personnages 22,26 personnages 23,26 personnages 24,26 personnages 25,26 personnages 26,26 personnages 27,26 personnages 28,26 personnages 29,26 personnages 30,26 personnages 31,26 personnages 0,27 personnages 1,27 personnages 2,27 personnages 3,27 personnages 4,27 personnages 5,27 personnages 6,27 personnages 7,27 personnages 8,27 personnages 9,27 personnages 10,27 personnages 11,27 personnages 12,27 personnages 13,27 personnages 14,27 personnages 15,27 personnages 16,27 personnages 17,27 personnages 18,27 personnages 19,27 personnages 20,27 personnages 21,27 personnages 22,27 personnages 23,27 personnages 24,27 personnages 25,27 personnages 26,27 personnages 27,27 personnages 28,27 personnages 29,27 personnages 30,27 personnages 31,27 personnages 0,28 personnages 1,28 personnages 2,28 personnages 3,28 personnages 4,28 personnages 5,28 personnages 6,28 personnages 7,28 personnages 8,28 personnages 9,28 personnages 10,28 personnages 11,28 personnages 12,28 personnages 13,28 personnages 14,28 personnages 15,28 personnages 16,28 personnages 17,28 personnages 18,28 personnages 19,28 personnages 20,28 personnages 21,28 personnages 22,28 personnages 23,28 personnages 24,28 personnages 25,28 personnages 26,28 personnages 27,28 personnages 28,28 personnages 29,28 personnages 30,28 personnages 31,28 personnages 0,29 personnages 1,29 personnages 2,29 personnages 3,29 personnages 4,29 personnages 5,29 personnages 6,29 personnages 7,29 personnages 8,29 personnages 9,29 personnages 10,29 personnages 11,29 personnages 12,29 personnages 13,29 personnages 14,29 personnages 15,29 personnages 16,29 personnages 17,29 personnages 18,29 personnages 19,29 personnages 20,29 personnages 21,29 personnages 22,29 personnages 23,29 personnages 24,29 personnages 25,29 personnages 26,29 personnages 27,29 personnages 28,29 personnages 29,29 personnages 30,29 personnages 31,29 personnages 0,30 personnages 1,30 personnages 2,30 personnages 3,30 personnages 4,30 personnages 5,30 personnages 6,30 personnages 7,30 personnages 8,30 personnages 9,30 personnages 10,30 personnages 11,30 personnages 12,30 personnages 13,30 personnages 14,30 personnages 15,30 personnages 16,30 personnages 17,30 personnages 18,30 personnages 19,30 personnages 20,30 personnages 21,30 personnages 22,30 personnages 23,30 personnages 24,30 personnages 25,30 personnages 26,30 personnages 27,30 personnages 28,30 personnages 29,30 personnages 30,30 personnages 31,30 personnages 0,31 personnages 1,31 personnages 2,31 personnages 3,31 personnages 4,31 personnages 5,31 personnages 6,31 personnages 7,31 personnages 8,31 personnages 9,31 personnages 10,31 personnages 11,31 personnages 12,31 personnages 13,31 personnages 14,31 personnages 15,31 personnages 16,31 personnages 17,31 personnages 18,31 personnages 19,31 personnages 20,31 personnages 21,31 personnages 22,31 personnages 23,31 personnages 24,31 personnages 25,31 personnages 26,31 personnages 27,31 personnages 28,31 personnages 29,31 personnages 30,31 personnages 31,31
Comme tu vois, ton code fonctionne parfaitement pour une des tables, et marchera si tu adaptes le nom de fichier à la valeur de numtable. L'erreur que tu rencontres, doit forcément résider dans le reste de ton programme, le parcours dynamique et probablement les DIMs. Si tu nous postes des morceaux de code comme ça, ajoute les DIM - ça ira beaucoup plus vite pour trouver l'erreur. | |
| | | exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Quelqu'un voit d'où vient l'erreur avec file_writeln ? Sam 11 Fév 2012 - 21:59 | |
| Lol quel resultat que tu affiches Klaus Comme je t'ai répondu dans un post, le nom du fichier change, il n'est pas ecrasé Le code que j'ai exposé et qui est dans le post précédent celui-ci, est presque complet, ce qui manque c'est juste le changement de la valeur de la variable ligne$, je ne l'ai pas mis car ça n'a pas d'interet pour le reste du programme, quii montre bien qu 'on lit toutes les cases d'un tableau et on met la valeur de la case dans un fichier, ensuite on change de tableau. Tout est là EDIT : Avec la dernière version affichée ci-dessus, l'erreur n'est plus au même endroit car j'ai modifié le file_writeln (j'ai ajouté le if) la nouvelle erreur est ici : file_close 35 il dit que le numéro n'est pas atttribué pour l'écriture. "File number not used for writing" | |
| | | exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Quelqu'un voit d'où vient l'erreur avec file_writeln ? Sam 11 Fév 2012 - 22:09 | |
| Merci pour votre aide en tous cas !!!
ça me saoule, faut que j'achete un clavier, je rate des lettres et j'edite 50 fois pour modifier
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Quelqu'un voit d'où vient l'erreur avec file_writeln ? Sam 11 Fév 2012 - 22:22 | |
| Ce message veut dire que le canal numéro 35 a été ouvert en lecture, pas en écriture. Tu as une incohérence à ce niveau-là.
Je te répète, le code que j'ai posté en retour est l'EXACTE copie du code que tu as mis en ligne, j'ai seulement ajouté les DIM et l'initialisation des tableaux. La situation chez toi est forcément différente de ce que tu as posté - l'erreur que tu viens de signaler le prouve ! | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Quelqu'un voit d'où vient l'erreur avec file_writeln ? Sam 11 Fév 2012 - 22:23 | |
| ça veut simplement dire que tu cherches à fermer ton fichier une deuxième fois. Ou comme dit Klaus, plutôt. | |
| | | exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Quelqu'un voit d'où vient l'erreur avec file_writeln ? Sam 11 Fév 2012 - 22:26 | |
| Merci beaucoup à tous, je vais regarder ça encore N'ième fois :/ - Citation :
Je te répète, le code que j'ai posté en retour est l'EXACTE copie du code que tu as mis en ligne, j'ai seulement ajouté les DIM et l'initialisation des tableaux. Non, dans ma version, ligne$ (le nom du fichier) change comme je l'ai indiqué, tandis que dans ta version (merci d'avoir fait^^) le nom reste le même et surtout son chemin. Voilà le code complet, tu verras que je ne peux pas m'expliquer mieux, ligne$ n'a pas d'incidence alors je n'ai pas indiqué comme je l'ai dis. Les dim : - Code:
-
' Variables de chemin dim projet$ dim map$ dim fichier$ dim cible$ dim ligne$ dim dossier$
La routine : - Code:
-
sauve_map: ' Sauve les tables d'éléments dans leur fichier respectif ' Sélectionne les tables d'éléments, une à une for numtable=1 to 6 select numtable case 1:type$="sols" case 2:type$="decors" case 3:type$="batiments" case 4:type$="objets" case 5:type$="animaux" case 6:type$="personnages" end_select dossier$="projets\"+projet$+"\"+type$+"\" ligne$="projets\"+projet$ if (dir_exists(ligne$)<>1) then dir_make ligne$ if (dir_exists(dossier$)<>1) then dir_make dossier$ fichier$=type$+"."+str$(num_map%) ligne$=dossier$+fichier$ file_open_write 35,ligne$ ' Lit une table d'élément for y%=0 to 31 for x%=0 to 31 select numtable case 1:cible$=table_sols$(x%,y%) case 2:cible$=table_decors$(x%,y%) case 3:cible$=table_batiments$(x%,y%) case 4:cible$=table_objets$(x%,y%) case 5:cible$=table_animaux$(x%,y%) case 6:cible$=table_personnages$(x%,y%) end_select if (cible$<>"")then file_writeln 35,cible$ next x% next y% file_close 35 next numtable ' Si le projet contient déjà des maps if (count(table_maps)>0) N=0:' flag pour tester l'existence de la map en cours dans table_maps ' N'ajoute le nom de la map en cours dans table_maps que si ce nom n'y figure pas. for i%=1 to count(table_maps) ' Charge les noms des maps du projet vers un List qui ' est sur le panneau d'invite. cible$=item_read$(table_maps,i%) ' Met N à 1 si la map en cours existe déjà dans table_maps if (cible$=map$)then N=1 next i% ' Ajoute la map en cours dans table_maps si elle n'y existe pas if (N=0)then item_add table_maps,map$ ' l'invite ne sera affichée que si table_maps n'est pas vide. ' gosub afficher_invite else ' Si le projet n'a pas encore une map créée. item_add table_maps,map$ end_if pret%=0 return
Dernière édition par exdragon le Sam 11 Fév 2012 - 22:34, édité 1 fois | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Quelqu'un voit d'où vient l'erreur avec file_writeln ? Sam 11 Fév 2012 - 22:32 | |
| J'ai pris exactement ce que tu as posté ! Voilà ce que tu as posté: - Code:
-
for numtable=1 to 6 ligne$=dossier$+fichier$ file_open_write 35,ligne$ ' Lit une table d'élément for y%=0 to 31 for x%=0 to 31 select numtable case 1:cible$=table_sols$(x%,y%) case 2:cible$=table_decors$(x%,y%) case 3:cible$=table_batiments$(x%,y%) case 4:cible$=table_objets$(x%,y%) case 5:cible$=table_animaux$(x%,y%) case 6:cible$=table_personnages$(x%,y%) end_select if (cible$<>"")then file_writeln 35,cible$ next x% next y% file_close 35
next numtable
Le nom de fichier n'est pas changé, et le fichier étant réouvert dans la boucle, il écrase systématiquement le précédent. D'ailleurs, dans le code publié par toi (celui ci-dessus) tu ne peux en aucun cas avoir le message d'erreur que tu viens de nous signaler. La situation dynamique, c'est-à-dire le déroulement du programme, est forcément différente chez toi. | |
| | | exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Quelqu'un voit d'où vient l'erreur avec file_writeln ? Sam 11 Fév 2012 - 22:36 | |
| c'était le code que j'avais posté il est vrai, mais j'avais dis que ligne$ changeait pour chaque fichier. Mais là dans le dernier post je te montre réellement comment.
En plus depuis le premier poste j'ai dis plusieurs fois que le numéro 35 est inexistant ailleurs que sur cette routine, donc je ne comprend pas, puisque je l'ai assigné en écriture.
| |
| | | exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Quelqu'un voit d'où vient l'erreur avec file_writeln ? Dim 12 Fév 2012 - 20:58 | |
| J'ai vraiment du mal à trouver une solution, et ça m'enerve ça. Je vais me cantonner à ma premiere version tant pis.
| |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Quelqu'un voit d'où vient l'erreur avec file_writeln ? Dim 12 Fév 2012 - 22:24 | |
| Poste-nous le code complet si c'est possible. sinon, place l'ensemble de ton projet avec les fichiers nécessaires sans un service de upload et poste-nous le lien, ou envoie-le-moi par mail personnel via le forum. Mais je m'absenterai demain pour quelques jours et pourrai m'en occuper seulement en fin de semaine. | |
| | | exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Quelqu'un voit d'où vient l'erreur avec file_writeln ? Lun 13 Fév 2012 - 2:11 | |
| - Citation :
- Poste-nous le code complet si c'est possible.
Je demande une aide, je poste les codes nécessaires, et pas de superflus,pour ne pas vous encombrer la compréhension, et j'explique le rôle de mes variables, et on me dit que telle variable ne change pas, que mon code n'est pas complet, etc... Je ne sais plus quoi dire à des personnes qui veulent m'aider et dont j'ai besoin de leur aide, mais qui ne lisent pas dans le détail ce que j'écris, alors je suis coincé... Lis juste ce qui est en rouge, tu va comprendre que je suis vraiment étonné de vos réactions : - Citation :
- Voilà le code complet, tu verras que je ne peux pas m'expliquer mieux, ligne$ n'a pas d'incidence alors je n'ai pas indiqué comme je l'ai dis.
- Citation :
- c'était le code que j'avais posté il est vrai, mais j'avais dis que ligne$ changeait pour chaque fichier.
Mais là dans le dernier post je te montre réellement comment.
- Citation :
- dans ma version, ligne$ (le nom du fichier) change comme je l'ai indiqué, tandis que dans ta version (merci d'avoir fait^^) le nom reste le même
le numéro 35 est inexistant ailleurs que sur cette routineET enfin, le code, le dernier que j'avais posté complet : Les dim : - Code:
-
' Variables de chemin dim projet$ dim map$ dim fichier$ dim cible$ dim ligne$ dim dossier$
La routine : - Code:
-
sauve_map: ' Sauve les tables d'éléments dans leur fichier respectif ' Sélectionne les tables d'éléments, une à une for numtable=1 to 6 select numtable case 1:type$="sols" case 2:type$="decors" case 3:type$="batiments" case 4:type$="objets" case 5:type$="animaux" case 6:type$="personnages" end_select dossier$="projets\"+projet$+"\"+type$+"\" ligne$="projets\"+projet$ if (dir_exists(ligne$)<>1) then dir_make ligne$ if (dir_exists(dossier$)<>1) then dir_make dossier$ fichier$=type$+"."+str$(num_map%) ligne$=dossier$+fichier$ file_open_write 35,ligne$ ' Lit une table d'élément for y%=0 to 31 for x%=0 to 31 select numtable case 1:cible$=table_sols$(x%,y%) case 2:cible$=table_decors$(x%,y%) case 3:cible$=table_batiments$(x%,y%) case 4:cible$=table_objets$(x%,y%) case 5:cible$=table_animaux$(x%,y%) case 6:cible$=table_personnages$(x%,y%) end_select if (cible$<>"")then file_writeln 35,cible$ next x% next y% file_close 35 next numtable ' Si le projet contient déjà des maps if (count(table_maps)>0) N=0:' flag pour tester l'existence de la map en cours dans table_maps ' N'ajoute le nom de la map en cours dans table_maps que si ce nom n'y figure pas. for i%=1 to count(table_maps) ' Charge les noms des maps du projet vers un List qui ' est sur le panneau d'invite. cible$=item_read$(table_maps,i%) ' Met N à 1 si la map en cours existe déjà dans table_maps if (cible$=map$)then N=1 next i% ' Ajoute la map en cours dans table_maps si elle n'y existe pas if (N=0)then item_add table_maps,map$ ' l'invite ne sera affichée que si table_maps n'est pas vide. ' gosub afficher_invite else ' Si le projet n'a pas encore une map créée. item_add table_maps,map$ end_if pret%=0 return
Je ne vais pas montrer le code de toutes les routines du programme juste pour une routine qui ne fonctionne pas, alors que toutes les données de la routine sont là, c'est comme si une piece était défaillante dans une montre et que l'on dise montrez-moi les plans de toutes les montres que vous avez. C'est bizarre... Il y a autre chose qui coince aussi, je ne veux pas rendre public les sources complètes. Bon, si vous ne voulez pas m'aider, tant pis, je laisserais tomber ce langage où je n'ai que déboire malgré le fait que je l'aime bien. Je retournerais à la programmation en C où je trouverais de nombreuses personnes et forums où poser mes questions. | |
| | | Contenu sponsorisé
| Sujet: Re: Quelqu'un voit d'où vient l'erreur avec file_writeln ? | |
| |
| | | | Quelqu'un voit d'où vient l'erreur avec file_writeln ? | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |