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 ? Lun 13 Fév 2012 - 10:43 | |
| Ce n'est pas la peine de t'énerver ! J'ai pris tes deux morceaux de code, je les ai mis ensemble, et j'ai esssayé d'exécuter. Ca en marche pas, bien sûr, parce qu'il manque tout l'environnement. J'ai reconstitué ce que j'ai pu. Maintenant, la routine que l'ai laissée inchangée, se déroule sans erreur, mais je ne peux pas juger le résultat car je n'ai pas les données. Voici ce que j'ai fait (et que tu aurais pu faire): - Code:
-
' Variables de chemin dim projet$ dim map$ dim fichier$ dim cible$ dim ligne$ dim dossier$
' **** rajouté par Klaus label sauve_map dim numtable, type$, num_map%, x%, y%, pret% 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)
dim table_maps : table_maps = 10 : dlist table_maps
gosub sauve_map message "fini" end ' **** fin rajout par KLaus
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
il te reste à mettre des valeurs dans les tableaux et faire marcher ce petit code, mais je suis certain que ta routine sauve_map est bonne. Le problème doit venir du reste du programme, et je maintient qu'il vient du parcours dynamique qui doit se faire de telle manière que certaines variables, soit ne sont pas définies, sont n'ont pas les bonnes valeurs. Mais, ce que j'en dis... | |
|
exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Quelqu'un voit d'où vient l'erreur avec file_writeln ? Mer 15 Fév 2012 - 17:45 | |
| Merci Jack, je vais voir comment adapter ton code !!! Merci de ton aide | |
|