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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
| void elaguer2seq(Liste *L){
Liste *p;
Liste *q;
char *mot;
Liste *TableHash;
for(p=L;p!=NULL;p=p->suivant){
for(q= TableHash ;q!=NULL;q=q->suivant){
printf ("%s", p->mot);
}
}
}
int main(void)
{
// Declaration des variables
int a;
FILE *F; // Descripteur du fichier texte
char mot[100]; // variable utilisée pour stocker le mot en cours de lecture
int i; // variable utilisée lors du parcours de la TableHash
unsigned int cle,pt; // variables pour stocker les cles du mot en cours et la clé du caractère '.'
char *temp; // variable pour stocker le mot en cours de lecture
char c; // ??
Liste **TableHash; // tableau de liste
TableHash = (Liste **) malloc (TAILLEHASH * sizeof(Liste *)); // allocation en memoire du tableau
for(i=0;i<TAILLEHASH;++i) // Initialisation des
TableHash[i] = NULL; // pointeurs contenus dans le tableau
pt=hash_cle("."); // calcul de la cle equivalent à un point
printf("debut du programme \n----------------------------------\n");
F=fopen("C:\\Documents and Settings\\siril\\Bureau\\posmot\\essai.txt","r"); // ouverture du fichier texte
if(F!= NULL) // si le fichier existe
{
while(fscanf(F,"%s",mot)==1) // boucle de lecture du fichier
{
temp = (char*)mot; // recuperation du mot lu
cle = hash_cle(temp); // calcul de la cle equivalente
if ( (cle!=pt ) && (!ChercherMotDansTableHash(TableHash,temp))) // si le mot n'est pas un point et qu'il n'est pas deja stocke
TableHash[cle] = InsertionEnTete(TableHash[cle],temp); // on l'insere en debut du tableau
}
fclose(F ); // on ferme le descripteur de fichier
F=fopen("C:\\Documents and Settings\\siril\\Bureau\\posmot\\essai.txt","r"); // on rouvre le descripteur de fichier pour revenir au debut
PosLigne(F,TableHash); // recherche des coordonnées des diferents mots extraits
fclose(F ); // on ferme le descripteur de fichier
//filtrage
printf("\nla liste non filtree :\n----------------------------------\n");
AfficherTableHash(TableHash); // affichage de la table NON FILTREE
printf("\nla liste filtree (2 occurrences au moins) :\n----------------------------------\n");
FiltreListe(TableHash,2); // filtrage de la table
AfficherTableHash(TableHash); // affichage de la table FILTREE
//géneration des 2seq
Liste *seq=NULL;
Generer2seq(TableHash, 2, &seq);
printf("\nla liste des 2seq :\n----------------------------------\n");
AfficherListe(seq);
//printf("Chercher mot : ");
//scanf("%s",mot);
//if(cle = ChercherMotDansTableHash(TableHash,mot))
// printf("%s existant dans le conteneur %u\n",mot,hash_cle(mot));
//else
// printf("%s inexistant dans la table de hash\n");
//scanf("%c",c);
// elagage des séquence
elaguer2seq(seq);
//printf("%i", a);
}
//}
else printf("Le fichier texte n'existe pas");
system("pause");
return 0;
} |