bonsoir, j'aurais besoin d'un petit éclaircissement sur les opérations sur des fichiers séquentiel...

j'ai pris l'exemple d'une union pour comprendre le principe:

On a un fichier A contenant plusieurs lignes, chaque ligne contient le contenu d'une structure complète (chaine chaine entier)

On a un autre fichier B contenant lui aussi plusieurs ligne de structure.

l'union consistant à mettre dans un fichier, tout le contenu de A et de B sans qu'une ligne identique apparaisse plus d'une fois.

voici une partie de mon code:
on as deux fichiers "file1" et "file2", et mon code rajoute juste tout le contenu de "file1" à la fin de "file2"
Il faudrais tester si la ligne rajouter ne soit pas déja présente dans "file2", et c'est sur ce point que je bloque...

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
typedef struct{
	char nom[MAX], prenom[MAX];
	int age;
} t_element;
 
t_element lire_element (FILE *p_file) {
   t_element data;
   fscanf(p_file, "%s", data.nom);
   fscanf(p_file, "%s", data.prenom);
   fscanf(p_file, "%d", &data.age);
   fflush(stdin);
   return data;
}
 
int comparer_data (const t_element data1, const t_element data2) {
   return (data1.age == data2.age &&
            !strcmp(data1.nom, data2.nom) &&
            !strcmp(data1.prenom, data2.prenom));
}
 
...
t_element data;
	while (1)
	{
    data = lire_element (p_file1);
		if (feof(p_file1)) break;
		fprintf(p_file2, "%s ", data.nom);
		fprintf(p_file2, "%s ", data.prenom);
		fprintf(p_file2, "%d\n", data.taille);
	}
...