Bonsoir à tous,
j'ai un petit souci avec ma fonction qui lit un fichier texte en entre (texte sous forme de ligne) et stocke chaque mot lu dans une table de hachage, le numero de ligne où il apparait dans le fichier et la frequence (nombre de ligne où apparait le mot)
Bon là j'ai reussi à stocker les mots, et les numeros de lignes , mais j'ai un souci avec le comptage de la frequence
J'ai essayé , mais là il m'affiche le nombre de fois où apparait le mot(en comptant les redondance d'un mot dans une meme ligne)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
while ( (res=get_word(fdesc, &buff, &tailleBuff, &ligne, &colonne))>0 )
		{
		    InsertionDoubleHashEx(DblTableHash, buff, ligne, ancienneColonne);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
void InsertionDoubleHashEx(TableHachageMot DblTableHash[], const char *mots, int ligne, int colonne)
{
	unsigned int const idx = HachagePartielMotsPrefixe(mots);
	InsertionHashEx(DblTableHash[idx], mots, ligne, colonne);
}
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
void InsertionHashEx(ListeMot TableHash[], const char *mots, int ligne, int colonne)
{
    int annex;
	unsigned int const idx = HachageCompletMots(mots);
 
	ChainonMot *p = ChercherMot(&TableHash[idx], mots);
 
	if (p == NULL)
	{
		/* le mot n'existe pas, insertion de celui ci */
		InsertionEnTeteEx(&TableHash[idx], mots);
		p = GetPremier(&TableHash[idx]);
	}
	/* Ajoute la nouvelle position du mot */
	coord_InsertionEnTete(GetPtrCoord(p), CreerCoordEx(ligne, colonne));
    if (ligne!=annex)
	    {
    IncrementeFrequence(p);
 annex=ligne;
	    }
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 void IncrementeFrequence(ChainonMot *p)
{
	assert(p!=NULL);
	p->freq++;
}
Une idée?
Merci