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 |
|
|
| RESOLU : petit code à tester, trouver l'erreur^^ | |
| | Auteur | Message |
---|
exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: RESOLU : petit code à tester, trouver l'erreur^^ Mer 8 Fév 2012 - 9:35 | |
| Je voudrais bien que vous testiez ce code : (il y a juste à le copier/coller sur une nouvelle page de panoramic). - Code:
-
dim projet$ dim type$ dim fichier$ dim num_map%
projet$="tintin" type$="sols" num_map%=1
fichier$=projet$+"\"+type$+"\"+type$+"."+str$(num_map%) message fichier$ file_open_write 1,fichier$ file_writeln 1,"herbe" file_close 1
J'aimerais bien savoir pourquoi il m'indique que le nom de fichier est mauvais. Dans cet exemple, le nom du fichier se termine par le chiffre 1 mais dans windows on peut très bien créer un nom de fichier qui se termine par un chiffre alors le problème ne vient pas de ça, d'ailleurs j'ai essayé sans le chiffre et l'erreur apparaît toujours. EDIT : Il fait l'erreur même avec ça : - Code:
-
fichier$=projet$+"\"+type$ En fait j'ai compris je crois, dés qu'on ajoute une barre anti-slash il refuse. Pour lui un nom de fichier c'est sans les chemins.C'est bête comme truc, car si on veut créer un fichier on est obligé d'aller dans le dossier pour le créer, je vois pas pourquoi on ne pourrait pas le créer tout en restant dans le dossier au-dessus. sous dos, si on fait ça : md alire\alire.txt ça marche. Dans mon code, je ne veux pas créer le répertoire dans la commande, car le répertoire existe déjà. Je veux juste créer un fichier dans le dossier "projets\sols"
Dernière édition par exdragon le Mer 8 Fév 2012 - 11:29, édité 1 fois | |
| | | lodchjo
Nombre de messages : 162 Age : 53 Localisation : Anvers Date d'inscription : 26/12/2011
| Sujet: Re: RESOLU : petit code à tester, trouver l'erreur^^ Mer 8 Fév 2012 - 10:30 | |
| Exdragon, Moi aussi j'ai eu des ennuies avec panoramic et surtout avec le fichier de travail actif parce que ce n'était pas toujours le même répertoire. Il n'y a pas de problème quand je commence par ouvrir panoramic et puis j'ouvre un fichier. Le problème c'était quand j'ouvrais un fichier *.bas a partir de windows (donc double-click sur le fichier pour l'ouvrir). Panoramic est bien lancé puis le fichier se charge. Jusqu'ici, pas de problème. Mais le fichier de travail actif ne devient pas le fichier qui contient le dossier que j'ai ouvert, mais le dernier fichier que j'avais précisé dans panoramic même. Au premier vu, ce n'est pas si grave, mais quand le fichier *.bas lancé dépend d'autres fichiers (p.ex. des images BMP), panoramic ne les trouves pas. Bon, entre-temps je connais le problème et j'ai adapté ma manière de bosser... il faut connaitre les faiblesses De toute façon, comme solution a toi, je propose: qu'avec "DIR_CHANGE" tu précises dans quel fichier tu veut écrire et puis tu continues sauver les données sans mentionner le fichier dans l'instruction qui fait rouspeter panoramic. J'espère que ça aide! Lode | |
| | | exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: RESOLU : petit code à tester, trouver l'erreur^^ Mer 8 Fév 2012 - 11:05 | |
| Salut lol, non ça aide pas Je dis bien que je ne veux pas changer de dossier, et dir_change va changer le dossier courant. Je veux pouvoir faire comme avec le dos : "Créer un fichier dans un dossier existant sans y entrer". PS: Tu parles de l'ouverture de fichiers ".bas" avec panoramic mais il n'est pas question de ça ici^^ | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: RESOLU : petit code à tester, trouver l'erreur^^ Mer 8 Fév 2012 - 11:11 | |
| Non, ce n'est pas ça. Le nom de fichier est valide. Mais certainement, le répertoire n'existe pas. J'ai copié ton source dans une page blanche de l'éditeur. Après affichage du nom de fichier, il plante sur une erreur de nom de fichier invalide. Je crée alors, le répertoire C:\tintin, et dans ce répertoire, je crée le sous-répertoire sols\, de sorte à avoir C:tintin`\sols\. Et là, ça marche, et dans ce sous-répertoire, il crée le fichier sols.1. Ton problème vient tu fait que tu utilises un nom de répertoire "relatif" et non un répertoire "absolu". Tu ne spécifies pas un chemin complet, commençant par un disque. Du coup, il essaie de trouver ton répertoire à partir du répertoire par défaut actuel. tu peux utiliser la variable dir_current$ pour connaître le nom du répertoire par défaut actuel. Tu peux aussi, avant de faire file_open_write, tester l'existence du répertoire par if dir_exists(fichier$)=0 then message "le répertoire n'existe pas !' Tu peux aussi forcer ne nom du répertoire par défaut en utilisant la commande dir_change Je te conseille d'établir au début du programme une variable racine$ dans lequel tu places le chemin complet du répertoire racine pour ton projet, y compris le disque. Et ainsi, tu n'auras plus aucun problème. CE répertoire racine, tu peux le définir de façon fixe, tu peux aussi choisir un sous-répertoire à celui où est installé l'exécutable de ton programme: - Code:
-
racine$ = param_value$(0) for i%=len(racine$) to 1 step -1 if mid$(racine$,i%,1)="\" then exit_for next i% racine$ = left$(racine$,i%) Tu peux alors définir projet$ = racine$ + "tintin" et le tour est joué. | |
| | | exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: RESOLU : petit code à tester, trouver l'erreur^^ Mer 8 Fév 2012 - 11:28 | |
| Salut Klaus^^ N'oublie pas que c'est une fonction d'écriture, elle doit pouvoir créer un dossier s'il n'existe pas. Effectivement, sinon tu as trouvé, il ne sait pas écrire un fichier dans un dossier qui n'existe pas, contrairement au dos avec la commande que j'ai cité plus haut. Je pense que je vais tester si le dossier existe, si oui j'autorise l'opération d'écriture du fichier, et si non je crée le dossier avant de faire l'écriture. Merci Jack tu me dépanne comme d'hab | |
| | | exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: RESOLU : petit code à tester, trouver l'erreur^^ Mer 8 Fév 2012 - 11:44 | |
| Voilà, le bon code était : - Code:
-
dim projet$ dim type$ dim fichier$ dim num_map% dim dossier$ dim ligne$
projet$="monjeu"
type$="sols" num_map%=15
dossier$=projet$+"\"+type$+"\"
if (dir_exists(projet$)<>1) then dir_make projet$ if (dir_exists(dossier$)<>1) then dir_make dossier$ fichier$=type$+"."+str$(num_map%) ligne$=dossier$+fichier$ file_open_write 1,ligne$ file_writeln 1,"herbe" file_close 1
Il fonctionne que le chemin existe ou non. | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: RESOLU : petit code à tester, trouver l'erreur^^ Mer 8 Fév 2012 - 13:02 | |
| - Citation :
- il ne sait pas écrire un fichier dans un dossier qui n'existe pas, contrairement au dos avec la commande que j'ai cité plus haut.
...sous dos, si on fait ça : md alire\alire.txt ça marche. Bonjour, Juste un petit rectificatif ça ne marche pas : la commande md (make directory) va te créer un répertoire alire qui contiendra un autre répertoire qui s’appellera alire.txt... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: RESOLU : petit code à tester, trouver l'erreur^^ Mer 8 Fév 2012 - 13:24 | |
| Eh bien, chez moi, ça marche - il crée le répertoire monjeu dans le répertoire actuel par défaut; dans ce répertoire, il crée le répertoire sols, et dans ce répertoire, il crée le fichier sols.15 . Pour moi, c'est bon. | |
| | | exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: RESOLU : petit code à tester, trouver l'erreur^^ Mer 8 Fév 2012 - 13:50 | |
| - Citation :
- Bonjour,
Juste un petit rectificatif Smile ça ne marche pas : la commande md (make directory) va te créer un répertoire alire qui contiendra un autre répertoire qui s’appellera alire.txt... Salut Nardo ^^ Pas du tout Nardo La commande dos crée bien un dossier avec un fichier : "alire\alire.txt" EDIT : Ah tu as raison Nardo, j'ai revérifié...En dos il crée le dossier alire.txt dans le dossier alire. Par contre mon programme fonctionne bien et c'est le principal^^ Par contre créer un fichier dans un dossier inexistant je l'ai déjà fait et ça marche, après je ne me souviens plus comment j'avais fait c'est bête :/ Peut-être que j'avais utilisé debug ? | |
| | | Contenu sponsorisé
| Sujet: Re: RESOLU : petit code à tester, trouver l'erreur^^ | |
| |
| | | | RESOLU : petit code à tester, trouver l'erreur^^ | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |