lepetitmarocain
Nombre de messages : 341 Age : 82 Localisation : Région Parisienne (à mon grand désespoir) Date d'inscription : 04/07/2018
| Sujet: Demande d'explications Sur File_Write & File_writeln Ven 14 Sep 2018 - 15:46 | |
| Bonjour à tous. Depuis quelque temps je m'arrache les cheveux sur file_Writeln. Mon problème je crée un fichier TXT et j’écris dans ce fichier avec file_Writeln. Mes 2 premières lignes s’écrivent bien, la 3eme est tronquée pour la fin et si j'en mets 4 la 4eme n'existe mème pas Si je mets file_Write tout s’écrit sur une mème ligne, mais tous est complet. Un conseil de votre part serait le bienvenu. Merci pour toutes vos réponses Lepetitmarocain | |
|
Pedro
Nombre de messages : 1596 Date d'inscription : 19/01/2014
| Sujet: File_writeln Ven 14 Sep 2018 - 15:54 | |
| Bonjour. Voici un petit exemple d'utilisation de la commande file_writeln, que j'utilise dans mon logiciel de planétarium, et qui fonctionne parfaitement. - Code:
-
sub enregistrer_date() file_open_write 99,"data/date.cfg" file_writeln 99,str$(jour) file_writeln 99,str$(mois%) file_writeln 99,str$(annee%) file_writeln 99,str$(heure%) file_writeln 99,str$(minute%) file_writeln 99,str$(seconde) file_close 99 end_sub | |
|
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Demande d'explications Sur File_Write & File_writeln Ven 14 Sep 2018 - 16:42 | |
| Je me permet de reprendre le code de Pedro, car lepetitmarocain débute avec Panoramic. Et comme on est pas sur qu'il utilise les SUB.... - lepetitmarocain a écrit:
- Si je mets file_Write tout s’écrit sur une mème ligne, .....
C'est normal, FILE_WRITE écrit directement après le dernier caractère (à la suite). - Code:
-
file_open_write 99,"date.txt" file_writeln 99,"jour: "+str$(date_day) file_writeln 99,"mois: "+str$(date_month) file_writeln 99,"année: "+str$(date_year) file_writeln 99,"" : ' une ligne vide pour vérifier file_writeln 99,"heure: "+str$(time_hour) file_writeln 99,"minute: "+str$(time_minute) file_writeln 99,"seconde: "+str$(time_second) file_close 99
A+ | |
|
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Demande d'explications Sur File_Write & File_writeln Ven 14 Sep 2018 - 22:54 | |
| Salut lepetitmarocain. Souviens-toi qu’un fichier ouvert par file_open… doit toujours être fermé par file_close quand on a finit de s’en servir et au plus tard avant de terminer le programme. | |
|
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Demande d'explications Sur File_Write & File_writeln Sam 15 Sep 2018 - 11:57 | |
| Bonjour à tous ! @Lepetitmarocain Les données dans un fichier sont écrites bout à bout. Exemple d'un fichier : Toutobstaclerenforceladétermination.
Dans l'exemple ci-dessus, il est impossible de relire individuellement chaque mot de la phrase. C’est ce qu'il se passe quand on utilise la commande FILE_WRITE. Les données sont mises bout à bout. La commande FILE_READ retournera la phase complète d’un seul bloc. Démonstration : - Code:
-
DIM a$
' enregistrement FILE_OPEN_WRITE 1,"test.txt" FILE_WRITE 1,"Tout" FILE_WRITE 1,"obstacle" FILE_WRITE 1,"renforce" FILE_WRITE 1,"la" FILE_WRITE 1,"détermination" FILE_CLOSE 1
' lecture FILE_OPEN_READ 1,"Test.txt" FILE_READ 1,a$ PRINT a$ FILE_CLOSE 1
END Pour pouvoir retrouver chaque mot, il faut insérer un séparateur invisible pour l’utilisateur entre ces mots. C’est ce que fait la commande FILE_WRITELN. Ainsi, lors de la lecture du fichier avec la commande FILE_READLN, chaque mot est restitué individuellement. Démonstration : - Code:
-
DIM a$,b$,c$,d$,e$
' enregistrement FILE_OPEN_WRITE 1,"test.txt" FILE_WRITELN 1,"Tout" FILE_WRITELN 1,"obstacle" FILE_WRITELN 1,"renforce" FILE_WRITELN 1,"la" FILE_WRITELN 1,"détermination" FILE_CLOSE 1
' lecture FILE_OPEN_READ 1,"Test.txt" FILE_READLN 1,a$ FILE_READLN 1,b$ FILE_READLN 1,c$ FILE_READLN 1,d$ FILE_READLN 1,e$ PRINT a$ PRINT b$ PRINT c$ PRINT d$ PRINT e$ FILE_CLOSE 1
END Pour se rapprocher de ta problématique, remplaçons les mots par des phrases.
Démonstration : - Code:
-
DIM a$,b$,c$,d$,e$,f$
' enregistrement FILE_OPEN_WRITE 1,"test.txt" FILE_WRITELN 1,"La Cigale, ayant chanté tout l'été," FILE_WRITELN 1,"Se trouva fort dépourvue quand la bise fut venue." FILE_WRITELN 1,"Pas un seul petit morceau de mouche ou de vermisseau." FILE_WRITELN 1,"Elle alla crier famine chez la Fourmi sa voisine," FILE_WRITELN 1,"La priant de lui prêter quelque grain pour subsister jusqu'à la saison nouvelle." FILE_WRITELN 1,"«Je vous paierai, lui dit-elle, avant l'août, foi d'animal, intérêt et principal.»" FILE_CLOSE 1
' lecture FILE_OPEN_READ 1,"Test.txt" FILE_READLN 1,a$ FILE_READLN 1,b$ FILE_READLN 1,c$ FILE_READLN 1,d$ FILE_READLN 1,e$ FILE_READLN 1,f$ PRINT a$ PRINT b$ PRINT c$ PRINT d$ PRINT e$ PRINT f$ FILE_CLOSE 1
END
Le séparateur invisible utilisé par FILE_WRITELN est sous la forme de deux octets : OD et OA en hexadécimal (13 et 10 en décimal) . Dans la table ASCII : . OD = retour en début de ligne . OA = saut de ligne Chaque enregistrement sera terminera par OD OA. Ces deux caractères ne sont pas visibles. - Lepetitmarocain a écrit:
- Mes 2 premières lignes s’écrivent bien, la 3eme est tronquée pour la fin et si j'en mets 4 la 4eme n'existe mème pas
Pour être plus précis, seul le caractère OA indique à FILE_READLN une fin de lecture. Si dans la phrase que tu souhaites enregistrer, il y a un OA, lorsque tu liras cet enregistrement, la phrase sera tronquée et s’arrêtera au caractère juste avant le OA. Si tu as deux OA qui se suivent, tu auras une ligne vide. Autre remarque, OA stop aussi la lecture dans la commande FILE_READ. Voilà qui j’espère pourra t’aider. J’ai parlé d’ASCII, d’hexadécimal… je ne connais pas tes compétences en informatiques. N’hésite pas à demander en cas de difficultés. Bon dimanche ensoleillé ! | |
|
Jack Admin
Nombre de messages : 2395 Date d'inscription : 28/05/2007
| Sujet: Re: Demande d'explications Sur File_Write & File_writeln Sam 15 Sep 2018 - 17:26 | |
| - lepetitmarocain a écrit:
- Mes 2 premières lignes s’écrivent bien, la 3eme est tronquée pour la fin et si j'en mets 4 la 4eme n'existe mème pas
cela ressemble à une commande FILE_CLOSE qui manque, car FILE_WRIITE et FILE_WRITELN n'écrivent pas dans un fichier immédiatement. Par contre, FILE_CLOSE écrit dans le fichier ce qu'il reste à écrire avant de le fermer. _________________ username : panoramic@jack-panoramic password : panoramic123 | |
|
lepetitmarocain
Nombre de messages : 341 Age : 82 Localisation : Région Parisienne (à mon grand désespoir) Date d'inscription : 04/07/2018
| Sujet: Demande d'explications sur Write Jeu 4 Oct 2018 - 15:25 | |
| Bonjour à tous
Merci pour toutes les réponses concernant la création d'un TXT.
Je vais arriver surement à me débrouiller avec tout cela.
Pendant ma vie active, j’étais Chef de projet informatique.
J' ai programmé à la fin en VB5 et VB6, avec des bases de données SQL & Access.
Au début de ma carrière, j' ai programmé avec un logiciel qui comme a dit Charles Aznavour
"Que les moins de 20 ans ne peuvent pas connaitre'... c'est le RPG2.
Merci pour ce forum qui est génial
Lepetitmarocain | |
|
Contenu sponsorisé
| Sujet: Re: Demande d'explications Sur File_Write & File_writeln | |
| |
|