JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Conversion Unix vers Dos Ven 20 Mar 2015 - 20:36 | |
| J'ai récupéré un fichier texte codé sous Unix, c'est à dire que les sauts de ligne sont codés chr$(10) seul (LF = line feed) au lieu de CHR$(13)+CHR$(10) (CRLF) à la mode MsDos, et sous Notepad ce n'est pas joli, toutes les lignes sont collées les unes aux autres. Autrement dit il faut ajouter un CR devant tous les LF. Et donc une petite Sub de conversion: - Code:
-
SUB Unix2Dos(f$,fr$) ' Conversion de format texte Unix en format DOS (remplacement des '0A' seuls par des '0D0A') ' (NB: le fichier ne doit pas contenir de caractère '1A' qui bloque le File_Readbuf) DIM_LOCAL sz%,v$,k% FILEBIN_OPEN_READ 9,f$: sz% = FILEBIN_SIZE(9): FILEBIN_CLOSE 9: ' taille du fichier FILE_OPEN_READ 9,f$: FILE_READBUF 9,v$,sz%: FILE_CLOSE 9: ' lecture intégrale dans v$ IF INSTR(v$,CHR$(26)) > 0 THEN MESSAGE "Caractère incorrect, abandon.": EXIT_SUB k% = INSTR(v$,CHR$(10)) WHILE k% > 0 IF MID$(v$,k%-1,1)<>CHR$(13): ' caractère précédent v$=LEFT$(v$,k%-1)+CHR$(13)+RIGHT_POS$(v$,k%): k% = k%+1 END_IF k% = INSTR_POS(v$,CHR$(10),k%+1) END_WHILE FILE_OPEN_WRITE 9,fr$: FILE_WRITEBUF 9,v$,LEN(v$): FILE_CLOSE 9 END_SUB | |
|