union sur des fichiers séquentiel
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:
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);
}
... |