[C] boucle infinie introuvable
stroumpf
Messages postés
289
Date d'inscription
Statut
Membre
Dernière intervention
-
stroumpf Messages postés 289 Date d'inscription Statut Membre Dernière intervention -
stroumpf Messages postés 289 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai fait une fonction que je lai testé sur un fichier texte petit et ca merche bien , mais quand je l'ai testé sur 1 fichier de 26000 lignes , l'execution ca resté plusqu'une heure !!! :(
on m'a dit qu'il ya une boucle infinie, or moi j'ai passé une journée la cherché, mais rien trouvé.
qui veut m'aider?
merci
j'ai fait une fonction que je lai testé sur un fichier texte petit et ca merche bien , mais quand je l'ai testé sur 1 fichier de 26000 lignes , l'execution ca resté plusqu'une heure !!! :(
on m'a dit qu'il ya une boucle infinie, or moi j'ai passé une journée la cherché, mais rien trouvé.
qui veut m'aider?
merci
A voir également:
- [C] boucle infinie introuvable
- Clé usb introuvable - Guide
- Supprimer un fichier introuvable - Guide
- Facebook rencontre introuvable ✓ - Forum Facebook
- Python est introuvable. exúcutez sans argument pour procúder ó l - Forum Python
- Mfc140u.dll introuvable ✓ - Forum Logiciels
2 réponses
merci dubcek
int main (void)
{
int res = 0;
FILE *F = NULL;
char mot[100];
int i, j;
unsigned int cle, pt;
SListe *seq2 = NULL;
SListe **seq;
Liste **TableHash;
TableHash = (Liste **) malloc (TAILLEHASH * sizeof (Liste *));
for (i = 0; i < TAILLEHASH; ++i)
TableHash[i] = NULL;
pt = hash_cle (".");
printf ("debut du programme \n----------------------------------\n");
F = fopen (PATH, "r");
printf ("Ouverture du Fichier \n----------------------------------\n");
while (fscanf (F, "%s", mot) == 1)
{
cle = hash_cle (mot);
if ((cle != pt) && (!ChercherMotDansTableHash (TableHash, mot)))
TableHash[cle] = InsertionEnTete (TableHash[cle], mot, cle);
if (fgetc (F) == EOF)
break;
}
fclose (F);
AfficherTableHash (TableHash);
printf ("nombre de lignes \n----------------------------------\n");
F = fopen (PATH, "r");
if (F != NULL)
{
char buffer[BUFSIZ];
int nb_read;
while ((nb_read = fread (buffer, 1, sizeof buffer, F)) > 0)
{
int i;
for (i = 0; i < nb_read; i++)
{
if (buffer[i] == '\n')
{
res++;
}
}
}
fclose (F);
printf ("%i\n", res);
}
else
{
perror (PATH);
}
F = fopen (PATH, "r");
PosLigne (F, TableHash);
.......}
le code est long.
mais le probleme c'est que je fais 2 lecture d'un fichier texte alors qu'il faut faire 1 seule lecture pour gagner le temps.
une 1ere lecture pour stocker les mots du fichier dans un table de hachage, et a chaque fois on lles attribue leurs liste de coordonnées (num-ligne , position),
alor(s que moi j'ouvre à chaque operation le fichier.
int main (void)
{
int res = 0;
FILE *F = NULL;
char mot[100];
int i, j;
unsigned int cle, pt;
SListe *seq2 = NULL;
SListe **seq;
Liste **TableHash;
TableHash = (Liste **) malloc (TAILLEHASH * sizeof (Liste *));
for (i = 0; i < TAILLEHASH; ++i)
TableHash[i] = NULL;
pt = hash_cle (".");
printf ("debut du programme \n----------------------------------\n");
F = fopen (PATH, "r");
printf ("Ouverture du Fichier \n----------------------------------\n");
while (fscanf (F, "%s", mot) == 1)
{
cle = hash_cle (mot);
if ((cle != pt) && (!ChercherMotDansTableHash (TableHash, mot)))
TableHash[cle] = InsertionEnTete (TableHash[cle], mot, cle);
if (fgetc (F) == EOF)
break;
}
fclose (F);
AfficherTableHash (TableHash);
printf ("nombre de lignes \n----------------------------------\n");
F = fopen (PATH, "r");
if (F != NULL)
{
char buffer[BUFSIZ];
int nb_read;
while ((nb_read = fread (buffer, 1, sizeof buffer, F)) > 0)
{
int i;
for (i = 0; i < nb_read; i++)
{
if (buffer[i] == '\n')
{
res++;
}
}
}
fclose (F);
printf ("%i\n", res);
}
else
{
perror (PATH);
}
F = fopen (PATH, "r");
PosLigne (F, TableHash);
.......}
le code est long.
mais le probleme c'est que je fais 2 lecture d'un fichier texte alors qu'il faut faire 1 seule lecture pour gagner le temps.
une 1ere lecture pour stocker les mots du fichier dans un table de hachage, et a chaque fois on lles attribue leurs liste de coordonnées (num-ligne , position),
alor(s que moi j'ouvre à chaque operation le fichier.