Bonjour,
Je travaille sur un projet dont le but est d'extraire les informations utiles d'un fichier "dump" (de crash), afficher en .txt.
J'ai déjà réussi à récupérer la ligne contenant l'info recherchée, mais aucune idée de comment récupérer seulement l'info (ici le nom du programme ayant causé l'erreur : "JSAD0G"
Sachant que le nom change en fonction du fichier EX : ici c'est "JSAD0G" mais dans un autre dump ça peut être "FBQA0L".
Donc pas de recherche de chaine de caractère possible via strstr.
Une idée ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
*FAILING PROGRAM              JSAD0G  OBJ-JSAD0G          +00000464  TRC-JSAD LOADSET-BASE
Ci dessus la ligne récupérée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
/*
		VERSION 3 : - SELECTION DES INFORMATIONS UTILES (FAILING PROGRAM)
*/
 
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define TAILLE_MAX 1000
 
int main(int argc, char *argv[])
{
	char * string1 = "FAILING PROGRAM"; 							//chaine1
    char * chemin = argv[1]; 									//chemin
    FILE* entree = fopen(chemin, "rb"); 							//Lecture en binaire
    FILE* sortie = fopen("sortie.txt", "wb+"); 						        //Lecture/Ecriture en binaire
	char chaine[TAILLE_MAX] = "";
	char chaine2[TAILLE_MAX] = "";
 
	if (argc != 2) { 												//Si problème de paramètres
        printf("usage: %s fichier\n", argv[0]);									
        return EXIT_FAILURE;
    }
 
	if(entree != NULL){										 //Lecure ligne par ligne
		for(int ligne = 1; ; ligne ++){
			char * resultat = fgets(chaine, TAILLE_MAX, entree);
			if(resultat == NULL) break;
 
			if (strstr(chaine, string1) != NULL){					//Recherche de la chaine demandée
				fprintf(sortie, "%s", chaine);				        //Ecriture dans fichier de sortie (txt)
			}
		}
	}
 
	else(printf("Fichier introuvable ou impossible a lire\n"));
	fclose(entree);
	fclose(sortie);
}
Puis mon code.


PS : Si vous vous demandez pourquoi je lis et j'écris en binaire, car le ficher dump de base est en hexa ou binaire et est mal convertit, donc impossible à lire autrement. D'où les caractères bizarres en début de ligne.