JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Fichier <-> Datas Lun 7 Jan 2019 - 20:27 | |
| Sana prétention, deux petites subs de conversion d'un fichier quelconque en lignes de datas et inversement. Pour par exemple intégrer une petite image, genre icône dans un exécutable sans la mettre en fichier joint, elle sera intégrée dans le code: - Code:
-
SUB FileToData(f$,fd$,Etiq$) ' Conversion d'un fichier quelconque f$ en lignes de datas hexa dans fd$ ' à intégrer dans un programme. (conversion inverse: SUB DataToFile) ' Etiq$: séquence repère quelconque de début des datas (1ère ligne) DIM_LOCAL q$,sz%,a$,k%,n%,ll% q$ = CHR$(34) ll% = 32: ' octets par ligne de datas FILEBIN_OPEN_READ 1,f$: sz% = FILEBIN_SIZE(1): k% = INT(sz%/ll%) FILE_OPEN_WRITE 2,fd$: FILE_WRITELN 2,"DATA "+q$+Etiq$+q$ FOR n% = 1 TO k% FILEBIN_HEXA_READ 1,ll%,a$: FILE_WRITELN 2,"DATA "+CHR$(34)+a$+CHR$(34) NEXT n% IF sz% > k%*ll% FILEBIN_HEXA_READ 1,sz%-k%*ll%,a$: FILE_WRITELN 2,"DATA "+CHR$(34)+a$+CHR$(34) END_IF FILE_WRITELN 2,"DATA "+CHR$(34)+"F"+CHR$(34) FILEBIN_CLOSE 1: FILE_CLOSE 2 END_SUB f$ est le (petit) fichier quelconque, binaire en général, à convertir, fd$ est le fichier texte résultat: Les données sont stockées en Ascii sous forme hexadécimale. Etiq$ est une petite séquence Ascii quelconque qui servira de repère de départ pour le décodage des datas. Par exemple le type (extension) du fichier: "ICO", "BMP", JPG", etc ... ou autre. Les lignes du fichier résultat (lignes de DATAs) sont à intégrer dans le code du programme utilisateur. - Code:
-
SUB DataToFile(f1$,Etiq$) ' Conversion de lignes de datas en un fichier (par exemple image) ' (lignes de datas créées à partir d'un fichier quelconque: SUB FileToData) ' Etiq$ = séquence repère de début (1ère ligne de datas). DIM_LOCAL a$,n% FILEBIN_OPEN_WRITE 1,f1$ READ a$: WHILE a$<>Etiq$: READ a$: END_WHILE READ a$ WHILE a$<>"F": n% = LEN(a$)/2: FILEBIN_HEXA_WRITE 1,n%,a$: READ a$: END_WHILE FILEBIN_CLOSE 1 END_SUB | |
|
jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Sam 12 Jan 2019 - 16:23 | |
| Bien ça, ça peut toujours être utile ! | |
|