Outils pour utilisateurs

Outils du site


allegro:code_memfile

====== Différences ====== Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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;
 } }
allegro/code_memfile.1332508010.txt.gz · Dernière modification: 2012/03/23 14:06 par mrhide