A voir également:
- [c]supprimer le 1erelemnt d'une table de hac
- Supprimer rond bleu whatsapp - Guide
- Table ascii - Guide
- Supprimer une page word - Guide
- Table des matières word - Guide
- Impossible de supprimer un fichier - Guide
2 réponses
stroumpf c'est bien de poster des sujets et de demander
de l'aide mais c'est bien aussi de répondre quand on te de-
mande des choses pour t'aider -_-'
Flawon
de l'aide mais c'est bien aussi de répondre quand on te de-
mande des choses pour t'aider -_-'
Flawon
typedef struct c{
int pos;
int nl;
struct c *suivant;
}Coordonnees;
typedef struct L{
char mot[50];
Coordonnees *c;
struct L *suivant;
}Liste;
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:\\Users\\cyrine\\Desktop\\Nouveau dossier\\text.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:\\Users\\cyrine\\Desktop\\Nouveau dossier\\text.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
AfficherTableHash(TableHash);
elaguer2seq(seq, TableHash);
//printf("%i", a);
}}
void elaguer2seq(Liste *L, Liste **TableHash)
{
Liste *p;
Liste *q;
char *mot;
int i=0;
int a;
Liste *maillon_temp;
Liste *last;
printf(" seq : %s\n",L->mot);
//printf("TableHash : %s\n",TableHash[1]->mot);
last=TableHash[i];
for(p=TableHash[i];p!=NULL;p=p->suivant){
if(TableHash[i] != NULL)
printf("TableHash : %s\n",TableHash[i]->mot);
if (chercher_mot(TableHash[i]->mot,p->mot)==0)
printf("%s","condition vérifiée");
TableHash[i]=p->suivant;
last=p->suivant;
maillon_temp=TableHash[i];
TableHash[i]=TableHash[i]->suivant ;
free(maillon_temp);
// supprimerMot(p->mot);
AfficherTableHash(TableHash);
printf("TableHash : %s\n",TableHash[i]->mot);
}