comment indexer tous les fichiers d'un repertoire en c - C - Programmation
Marsh Posté le 04-06-2012 à 11:31:31
Cela ne devrait même pas compiler, il doit y avoir une erreur de copier coller :
Code :
|
Les fichiers sont ouverts et jamais fermés et comme on n'a pas le code de insere_mot ...
Marsh Posté le 04-06-2012 à 11:56:54
De toute façon, une fonction "indexer répertoire" devrait faire appel à une fonction "indexer fichier" (qui aurait permis d'encadrer proprement l'appel avec un open et un close du fichier). Inutile de continuer tant que c'est architecturé avec les pieds.
A+,
Marsh Posté le 04-06-2012 à 14:20:02
En effet il y'avait une de copier coller . J'ai bien essayé de mettre en place une fonction indexer fichier mais comme j'essaye de creer un seul index pour tout les fichiers du repertoire je me pose des questions au niveau du chainage.Mais voici quand meme le code de la fonction insere_mot et de la fonction creer_index car je suis pas tres a l'aise avec les fichiers et les pointeurs ...
Code :
|
Marsh Posté le 04-06-2012 à 16:48:03
C'est pourtant pas dur:
tu crées ta structure d'index
1) tu ouvres le répertoire
2) tu boucles sur les fichiers du répertoire
3) si c'est un fichier (et non pas un répertoire, ce qui va permettre d'exclure . et .. mais aussi les sous répertoires éventuels)
4) tu ouvres le fichier
5) tu indexes le fichier
6) tu fermes le fichier
7) tu fermes le répertoire
A+,
Marsh Posté le 05-06-2012 à 01:44:05
gilou a écrit : C'est pourtant pas dur: |
J'ai essayé de faire comme tu la dit mais j'ai toujours des soucis au niveau de la lecture du fichier car j'ai toujours un index vide (ce qui n'est pas normal lol).Mon programme n'entre meme pas dans la boucle qui doit parcourir le fichier et recuperer les données dans le fichier .selon moi c'est cette partie du code qui marche pas
Code :
|
Marsh Posté le 05-06-2012 à 12:34:25
Tant que tu passeras pas ton temps à rendre ça modulaire (c'est a dire en fonctions au rôle clairement défini aux fonctionalités testables sans avoir a faire fonctionner du code supplémentaire), je vais pas trop chercher à comprendre un code dont on n'a pas tous les morceaux.
Parce que ici, il est clair qu'on devrait avoir une logique dans le style:
while ( line = get_next_line(fichier)) {
++line;
while (mot = get_next_mot(line)) {
insère_mot(normalise_mot(mot), &index);
}
}
et que tout faire en monobloc rend ça opaque et pas facilement testable.
A+,
Marsh Posté le 05-06-2012 à 14:44:42
Bon, pour ceux que ça intéresse, les deux erreurs a corriger:
close(fic); ça doit être fclose(fic); et le couper-coller l'a mis après l'accolade, ça devrait être avant.
snprintf(fn,sizeof fn,ad,ent->d_name); n'a pas l'indication de format, ça doit être snprintf(fn,sizeof fn,"%s\\%s", ad,ent->d_name); sous Windows (et snprintf(fn,sizeof fn,"%s/%s", ad,ent->d_name); sous linux) sinon aucun fichier n'est ouvert d'ou l'index vide.
A+,
Marsh Posté le 05-06-2012 à 23:32:03
merci d'avoir pris le temps de m'aidez !!!!!Sa me vas droit au coeur
Marsh Posté le 05-06-2012 à 23:36:23
Il me reste deux trois trucs a reglé et c'est ok!!!!!thanks u i appreciated that
Marsh Posté le 03-06-2012 à 19:48:02
Bonjour
Dans le cadre d'un projet j'essaye de mettre en place un moteur d'indexation des fichiers d'un repertoire en langage C.Mon souci est que j'arrive a ouvrir mon repertoire et à lister les fichiers mais j'arrive pas a acceder au contenu des fichiers .
le code que j'utilise est le suivant il compile mais j'ai un index vide aidez moi svp :
Message édité par gilou le 03-06-2012 à 21:34:02