====== Différences ====== Ci-dessous, les différences entre deux révisions de la page.
allegro:code_memfile [2012/03/23 14:06] mrhide |
allegro:code_memfile [2015/01/17 03:32] (Version actuelle) mrhide |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
Ce code est un programme qui crée un tableau de bytes à partir d'un fichier binaire afin d'être utilisé avec l'addon memfile.\\ | Ce code est un programme qui crée un tableau de bytes à partir d'un fichier binaire afin d'être utilisé avec l'addon memfile.\\ | ||
- | |||
- | FIXME ce code est immonde, j'étais bourré ? | ||
<file c mem_maker.c> | <file c mem_maker.c> | ||
Ligne 18: | Ligne 16: | ||
int i, cpt=1; | int i, cpt=1; | ||
size_t val; | size_t val; | ||
- | char value[BYTES_PER_LINES]; | + | unsigned char value[BYTES_PER_LINES]; |
- | char cont[] = "0xFF"; // 4 bytes - la valeur sera changée | + | unsigned char cont[] = "0xFF"; // 4 bytes - la valeur sera changée |
- | char buflen[25]; | + | unsigned char buflen[25]; |
if (argc != 3) { | if (argc != 3) { | ||
printf("%s, convertit un fichier binaire en un tableau de char utilisable dans un programme\n", argv[0]); | printf("%s, convertit un fichier binaire en un tableau de char utilisable dans un programme\n", argv[0]); | ||
puts("Ce programme attend 2 arguments de la ligne de commande :"); | puts("Ce programme attend 2 arguments de la ligne de commande :"); | ||
- | puts("\t- l'@ de la source\n\t- l'@ pour l'output"); | + | puts("\t- le chemin de la source\n\t- le chemin pour l'output"); |
return -1; | return -1; | ||
} | } | ||
Ligne 33: | Ligne 31: | ||
if (fread(value, sizeof(char), 1, in) != 1) goto cleanup; | if (fread(value, sizeof(char), 1, in) != 1) goto cleanup; | ||
- | sprintf(cont, FORMAT, value); | + | sprintf(cont, FORMAT, value[0]); |
fwrite(prefix, sizeof(char), 21, out); fwrite(cont, sizeof(char), 4, out); | fwrite(prefix, sizeof(char), 21, out); fwrite(cont, sizeof(char), 4, out); | ||
Ligne 40: | Ligne 38: | ||
cpt += val; | cpt += val; | ||
for (i=0; i<val; i++) { | for (i=0; i<val; i++) { | ||
- | sprintf(cont, FORMAT, *(value+i)); | + | sprintf(cont, FORMAT, value[i]); |
fwrite(cont, sizeof(char), 4, out); | fwrite(cont, sizeof(char), 4, out); | ||
if (i != val-1) fwrite(sep, sizeof(char), 2, out); | if (i != val-1) fwrite(sep, sizeof(char), 2, out); | ||
Ligne 49: | Ligne 47: | ||
fwrite(buflen, sizeof(char), strlen(buflen), out); | fwrite(buflen, sizeof(char), strlen(buflen), out); | ||
- | cleanup: | ||
fclose(in); fclose(out); | fclose(in); fclose(out); | ||
+ | return 0; | ||
+ | |||
+ | cleanup: | ||
+ | fclose(in); fclose(out); | ||
+ | fputs("conversion failed\n", stderr); | ||
return 0; | return 0; | ||
} | } |