Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Fonction File_Read Ven 1 Juin 2012 - 18:29 | |
| En fait, FILE_READ déplace bien le pointeur. Seulement, comme FILE_READ s'arrête DEVANT lr prochain séparateur (CR, LF, FF, ...), le prochain FILE_READ rend une chaîne vide. Il faut utiliser FILE_READBUF pour dépasser le séparateur. On peut analyser caractère par caractère, car si l'on rencontre un CR, il y a certainement un LF derrière. Si l'on sait qu'il n'y a que des CR LF, on peut les prendre directement avec un seul appel à FILE_READBUF. Regarde la démo suivante: - Code:
-
dim a$
file_open_write 1,"x.txt" file_writeln 1,"abc123def456" file_writeln 1,"suite" file_close 1 file_open_read 1,"x.txt" file_read 1,a$ message "premier file_read: "+a$ file_readbuf 1,a$,2 : ' eliminer le CR LF file_read 1,a$ message "second file_read: "+a$ end
Je suis d'accord pour dire qu'il manque une fonction pour se déplacer dans un fichier texte, style FILE_POSITION ou FILE_SKIP. | |
|
Invité Invité
| Sujet: Re: Fonction File_Read Ven 1 Juin 2012 - 22:24 | |
| Bon je ne réfléchi plus. Avec un fichier texte suivant, saugardé dans: "z\chemin.txt" (c'est une reprise de code, ne pas faire de rapprochement entre le nom, et ce que j'ai mis dedans) - Citation :
- 5
"salut","bonjour",12 aller,sortir voir aller au revoir $$$ et une reprise d'un programme, où j'ai effacé les 3/4, juste pour voir, ce que cela donne, et une adaptation pour comprendre quelque chose qui finalement me dépasse: - Code:
-
width 0,440 :height 0,470 dim a% ,b% ,a$ ' ------------------------------------------------------------------------------ GRID 15:top 15,50:grid_column 15,3:grid_row 15,20:width 15,210:height 15,340 grid_one_column_width 15,1,20:grid_one_column_width 15,2,120:grid_row_height 15,16 for a%=2 to 20:grid_write 15,a%,1,a%-1:next a% list 1 : left 1,230:width 1,150:height 1,200:top 1,50:file_load 1,"z:\chemin.txt" ' ------------------------------------------------------------------------------ file_open_read 1,"z:\chemin.txt" file_readln 1,b% :' lit bien le nombre for a% = 2 to b% if even(a%)=0 file_read 1,a$ else file_readln 1,a$ end_if grid_write 15,a%,2,a$ grid_write 15,a%,3, len(a$) next a% file_close 1 end Dans Panoramic, je ne vois pas à quoi sert cette instruction. Vous peut-être, moi non. Il y aurait pu y avoir entre file_read et file_readln, la même chose qu'avec input# et lineinput# pour un autre basic. Là je ne sais pas. Désolé, mais quand je ne comprends plus, je prends des vacances! |
|