Outils pour utilisateurs

Outils du site

A PCRE internal error occured. This might be caused by a faulty plugin

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:03]
mrhide
allegro:code_memfile [2015/01/17 03:32] (Version actuelle)
mrhide
Ligne 6: Ligne 6:
 #include <​string.h>​ #include <​string.h>​
 #define FORMAT "​0x%2.2x"​ #define FORMAT "​0x%2.2x"​
 +#define suffix "​};"​ // 2 bytes
 +#define prefix "char file_array[] = {" // 21 bytes
 +#define sep ", " // 2 bytes
 +#define eol "​\n\t"​ // 2 byte
 #define BYTES_PER_LINES 20 #define BYTES_PER_LINES 20
    
Ligne 12: 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 suffix[] = "​};";​ // 2 bytes +   unsigned ​char cont[] = "​0xFF";​ // 4 bytes  -  la valeur sera changée 
-   char prefix[] = "char file_array[] = {"; // 21 bytes +   unsigned ​char buflen[25];
-   char cont  [] = "​0xFF";​ // 4 bytes  -  la valeur sera changée +
-   char sep   [] = ", "; // 2 bytes +
-   char eol   [] = "​\n\t";​ // 2 byte +
-   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 31: 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 38: 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 47: 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.1332507784.txt.gz · Dernière modification: 2012/03/23 14:03 par mrhide