1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
| /*
VERSION 4 : - TOUTES LES INFORMATIONS
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
#define MAX_SIZE 136
char * binstr(char * bin, int lngmax, const char * str){
int lngstr = strlen(str);
char * ret = NULL;
for(int i=0; i<lngmax-lngstr; i++){
if(memcmp(bin+i,str,lngstr)==0){
ret=bin+i;
break;
}
}
return ret;
}
struct s_search {
char *searched_value;
char *title_to_display;
bool already_displayed;
int display_size;
};
int main(int argc, char *argv[])
{
if (argc != 2) {
printf("usage: %s chemin\n", argv[0]);
return EXIT_FAILURE;
}
struct s_search search[]={
{"FAILING PROGRAM ","Programme : ",false,2},
{"FAILING PROGRAM ","Programme : ",false,4},
{"DATE - ","Date : ",false,5},
{"TIME - ","Heure : ",false,8},
{"START OF POST PROCESSING RUN FOR DUMP ","Référence : ",false,4},
{"SYSTEM ERROR NUMBER ","Ctrl : ",false,11},
{" +","Déplacement : ",false,9},
{" R0","R0",false,42},
{" R2","R2",false,42},
{" R4","R4",false,42},
{" R6","R6",false,42},
{" R8","R8",false,42},
{" R10","R10",false,42},
{" R12","R12",false,42},
{" R14","R14",false,42}
};
int nsearch=sizeof(search)/sizeof(search[0]);
FILE* infile = fopen(argv[1], "rb");
FILE* outfile = fopen("sortie.txt", "wb");
char read_line[MAX_SIZE];
if(infile != NULL){
while(fgets(read_line,sizeof(read_line),infile)) {
for(int i=0;i<nsearch;i++){
if(!search[i].already_displayed) {
char *result=binstr(read_line,sizeof(read_line),search[i].searched_value);
if(result){
fprintf(outfile,"%s%.*s\r\n",search[i].title_to_display,search[i].display_size,result+strlen(search[i].searched_value));
search[i].already_displayed=true;
}
}
}
}
}
fclose(infile);
fclose(outfile);
} |
Partager