Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1540 connectés 

  FORUM HardWare.fr
  Programmation
  C

  Creation d'un index pour fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Creation d'un index pour fichier

n°1876977
la_dechean​ce
Posté le 23-04-2009 à 16:46:06  profilanswer
 

Ola,  
 
 
Je dois faire un programme permettant de gérer un certain nombre de données stockées sur un fichier, et sur lequel je vais effectuer des operations ( recherche, ajout...).
Le probleme c'est qu'il faut créer un index  qui sera également stocké sur un fichier, et je ne comprend pas comment mettre ca en place.
 
Par exemple, si je fais un tableau qui comporte les types ( par ex,  mon fichier comporte des films -> je veux chercher un film d'action ), je ne comprend pas comment mettre en relation ce tableau avec les autres elements du fichier ( j'ai une structure FILM qui a un nom, un type ect ).
 
SInon il y a les arbres mais c'est pareil je ne comprend pas le fonctionement , si je créer un structure  comportant les fils et la clé d'identification de film, je ne vois pas comment ordoné hierarchiquement les donnée de l'arbre, et ensuite comment mettre en relation tous les films avec mon index.
 
Je sais pas si c'est comprehensible ce que je dit, je voudrai juste etre eclairé sur le fonctionement  et la creation de l'index ( est ce que c'est une focntion a part entiere?)
 
Merci

mood
Publicité
Posté le 23-04-2009 à 16:46:06  profilanswer
 

n°1876995
Elmoricq
Modérateur
Posté le 23-04-2009 à 17:12:45  profilanswer
 

Tu n'as pas accès à une base de données ?
C'est fait pour ça, et une requête en base c'est quand même plus facile que de se taper les éventuels problèmes de clefs mortes, fichiers corrompus, etc.
 
Mais sinon, il te suffit de travailler avec des fichiers utilisant un format précis. Soit du XML (avec la bibliothèque xerces-c et du temps passé sur la doc, c'est assez simple), soit bêtement du CSV avec un mécanisme d'interprétation maison. Et stocker le tout dans des tables de hâchage (par exemple des structures chaînées avec un identifiant et quelques champs).
 
Dans tous les cas, tu dois réfléchir à ton modèle de données avant même de commencer à taper une seule ligne de code.

n°1877006
olivthill
Posté le 23-04-2009 à 17:31:56  profilanswer
 

Un fichier d'index en informatique est comme un index à la fin d'un livre.
On a sur chaque ligne : la clé, puis le numéro de la page, ou de l'enregistrement, ou de l'adresse, où se trouve l'enregistrement correspondant à la clé. Habituellement, on indique le numéro de l'octet dans le fichier des données où se trouve l'enregistrement, et on peut ensuite aller chercher l'enregistrement avec un fseek() et un fread().
 
Si l'on veut faire une recherche sur le titre d'un film, il faut faire un index dont la clé sera les titres de film.
Si l'on veut faire une recherche sur le genre d'un film, il faut faire un autre index dont la clé sera les genres de film.

n°1877010
Elmoricq
Modérateur
Posté le 23-04-2009 à 17:45:40  profilanswer
 

Je n'avais pas interprété "index" dans ce sens-là. Mais si c'est bien ce que souhaite réaliser le posteur original, alors c'est encore plus "chaud" à faire de toute pièce.  
Non pas que le principe de base soit difficile à coder, mais disons qu'il y a toute une liste de cas à gérer que les concepteurs de base de données ont mis des années à résoudre (par exemple, détecter qu'il faut reconstruire un index après un crash ou une reprise quelconque).
 
Encore une fois, dans ce cas-là je préfèrerai utiliser une base de données, pour me concentrer sur le modèle de données et laisser la gestion technique à un logiciel éprouvé. Surtout qu'il y en a des gratuits avec des APIs pour les attaquer en C (PostGRE, MySQL).

n°1877016
SquiZZ
Posté le 23-04-2009 à 17:54:51  profilanswer
 

Pour bricoler un petit truc en C, je pense que sqlite peut être sympa.

n°1877017
la_dechean​ce
Posté le 23-04-2009 à 17:56:05  profilanswer
 

Ok je voit deja mieux, donc en gros si je veux faire des recherches avec plusieurs criteres differents, je dois créer autant d'index qu'il y a de criteres?
 
Sinon oui c'est bien ce sens la, ca aurait été plus simple mais j'ai des contraintes a respecter.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  Creation d'un index pour fichier

 

Sujets relatifs
créer un fichier avec OutputStreamConnaître le contenu d'un fichier compressé
Calcul de difference entre 2 dates dans 1 fichier 'Batch'Affichage d'un fichier texte [Résolu]
Copier le contenu d'un fichier texte[Python] os.path.getsize(fichier)>=98000
[RESOLU] - [C#] - Lancement et Création de Thread[Résolu] Algo de création d'une clé de validation
ecrire fichier en utilisant httpLien pour enregistrer fichier et pas afficher
Plus de sujets relatifs à : Creation d'un index pour fichier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR