Robot indexeur
varalax
Messages postés
66
Statut
Membre
-
varalax Messages postés 66 Statut Membre -
varalax Messages postés 66 Statut Membre -
Bonjour,
Dans le cadre de ma formation je dois créer un robot indexeur.
J'en suis au début et je bloque à un endroit c'est pourquoi je fais appel à votre savoir.
Lorsque je lance mon programme, j'écris dans un fichier texte de sortie ce qu'il y a dans un fichier texte d'entrée mot par mot en affichant à chaque fois la ligne qui lui a été attribué (ftell(...)).
Jusque là tous va bien.
Mon problème arrive quand je trouve une récurrence dans mon fichier texte d'entré. Mon programme met à jour le mot trouvé mais il met son numéro de ligne à 0.
Je voudrais dans un premier temps que lorsque mon programme trouve une récurrence, il lui attribue un numéro de ligne approprié.
Dans un deuxième temps je voudrais que le mot apparaisse une seule fois et mettre les numéro de ligne les un à la suite des autres.
Voici un morceau de fichier texte que j'ai en sortie de programme:
As 0
his 3
kingdom 7 <-- kingdom trouvé une fois super!
love 15
is 20
being 23
threatened 29
by 40
like 43
the 48
Turks, 52
young 59
prince 65
Vlad 72
Tepes 77
like 0
love 0
must 93
become 98
a 105
monster 107
feared 115
by 0
his 0
own 129
kingdom 0 <-- kingdom trouvé une deuxième fois ligne à 0 :( ( et je voudrais le mettre
sur la même ligne que le premier!)
Merci d'avance
Dans le cadre de ma formation je dois créer un robot indexeur.
J'en suis au début et je bloque à un endroit c'est pourquoi je fais appel à votre savoir.
Lorsque je lance mon programme, j'écris dans un fichier texte de sortie ce qu'il y a dans un fichier texte d'entrée mot par mot en affichant à chaque fois la ligne qui lui a été attribué (ftell(...)).
Jusque là tous va bien.
Mon problème arrive quand je trouve une récurrence dans mon fichier texte d'entré. Mon programme met à jour le mot trouvé mais il met son numéro de ligne à 0.
Je voudrais dans un premier temps que lorsque mon programme trouve une récurrence, il lui attribue un numéro de ligne approprié.
Dans un deuxième temps je voudrais que le mot apparaisse une seule fois et mettre les numéro de ligne les un à la suite des autres.
Voici un morceau de fichier texte que j'ai en sortie de programme:
As 0
his 3
kingdom 7 <-- kingdom trouvé une fois super!
love 15
is 20
being 23
threatened 29
by 40
like 43
the 48
Turks, 52
young 59
prince 65
Vlad 72
Tepes 77
like 0
love 0
must 93
become 98
a 105
monster 107
feared 115
by 0
his 0
own 129
kingdom 0 <-- kingdom trouvé une deuxième fois ligne à 0 :( ( et je voudrais le mettre
sur la même ligne que le premier!)
Merci d'avance
A voir également:
- Robot indexeur
- Robot prog - Télécharger - Édition & Programmation
- Je ne suis pas un robot confidentialité - conditions ✓ - Forum Windows 8 / 8.1
- Robot form - Télécharger - Divers Web & Internet
- Chien robot chinois - Guide
- Un robot est sur le même réseau que vous ✓ - Forum Virus
2 réponses
Bonjour, comment espères tu que l'on te dise ce qui ne va pas dans ton code sans le voir?
Pene à la coloration syntaxique.
Pene à la coloration syntaxique.
Oui c'est vrai voila un morceau de mon code : lorsque mon robot trouve un mot qu'il n'a jamais rencontré, il fait appel à la fonction nouvelle_case. Lorsqu'un mot est déja connu par le robot, il met à jour cette case avec la fonction maj_case
EDIT: Ajout de la coloration syntaxique.
void nouvelle_case(FILE* fichier, FILE* fichier2, INDEX *P, int *t_cour, char *[/contents/452-fichier-tmp tmp])
{
strcpy(P[*t_cour].nom_index, tmp); //On copiele nom inconnu dans otre index
P[*t_cour].tab_pos[0]=ftell(fichier)-strlen(tmp); //La position 0 de notre index prend la valeur de la ligne de notre fichier //
fprintf(fichier2,"%s %d\n", tmp, P[*t_cour].tab_pos[0]);
P[*t_cour].nbpos=1; // La position =1 //
(*t_cour)++;
}
void maj_case(INDEX *P, FILE* fichier,FILE* fichier2, int i)
{
P[i].tab_pos[P[i].nbpos]= ftell(fichier)-strlen(P[i].nom_index);
P[i].nbpos++;
fprintf(fichier2,"%s %d\n", P[i].nom_index, P[i].tab_pos[P[i].nbpos]);
}
EDIT: Ajout de la coloration syntaxique.