Fichier accès direct

Signaler
Messages postés
195
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
30 novembre 2009
-
Messages postés
195
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
30 novembre 2009
-
Bonjour,
Je dois réaliser une interface type base de donnée avec un fichier de données. Pour optimiser les perf, j'utilise un fichier d'accès direct (j'ai un fichier d'index me permettant d'accéder à la données souhaitée). Le problème est comment gérer ce fichier lorsqu'il y a des ajouts?
Par exemple, si il s'agit d'un annuaire et que j'ajoute à la personne "x" un numéro de portable, a priori, je vais décaler toutes les données qui se trouvent à la suite. Donc mon fichier d'index deviendra incohérent.
Quelqu'un saurait t'il comment faire cela (il existe surement des travaux sur le sujet non?)

Merci pr vos reponses et surtout, Joyeuses fêtes!

4 réponses

Messages postés
207
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
2 novembre 2006

Et pq n'alloues tu pas suffisament d'espace pr pvoir inscrire le numero de portable dans un espace vide

Par exemple, un fichier de type

tailleN\endtailePN[tailleN]Nom\endPrenom[taillePN]\endNumero[10]

=> tu prépares des index avec certains attributs à taille variable (Nom / Prenom) et d'autres à taille fixe (numero de telephone...)
Messages postés
195
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
30 novembre 2009

Merci pour ta réponse simtiers.
En fait j'ai donné l'exemple d'un annuaire pour faire simple mais il s'agit d'équipement électronique. On doit pouvoir leur ajouté un nombre indéfini de caractéristiques. (poids, taille, nom, diamètre...) comme des champs d'un table de BDD.
De plus ce fichier doit pouvoir contenir un tres grand nombre de données (d'équipements) alors je me suis dis que le mieux serait de gérer dynamiquement la taille de mes objets en mémoire.
Messages postés
207
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
2 novembre 2006

ok....
effectivement, c'est un peu plus compliqué...

Donc, si j'ai bien compris : tu dois enregistrer dans une base des infos sur des equipements, mais c'est infos ne sont pas aussi nombreuses en fonction de l'equipement, c'est bien ça ?

J'aurais bien dit un truc, mais c'est pas optimal : fais comme un disque dur
> une table d'index (equivalent à la FAT) > indexe tous les fragments d'enregistrement pr un equipement (debut : index 12, suite index 29, suite index 100, suite index 50...)

=> un fichier de données

> un outil de "defragmentation" > renomme le fichier de données en "data.old" et les index en "index.old"
crée les nveaux "index" & "data" et remplie les dans l'ordre des elements...
Messages postés
195
Date d'inscription
vendredi 19 novembre 2004
Statut
Membre
Dernière intervention
30 novembre 2009

Alors ca marche comme ca FAT32...?
C'est effectivement à ce genre de chose que je pensais. Dans ce cas, a ton avis, les données je les place directement à la fin du fichier de donnée? c'est ca?
Comment me conseil tu de créer mon fichier d'index? Je créer un fichier séquentiel ou accès direct?
Enfin, quel est l'intérêt de l'outil de défrag.? Je pensais que c'était utile pour combler les espaces vides dans un fichier mais si je place tjrs à la fin je n'en aurait pas!

Si tu connais des sources ou tuto traitant de ce pbm qui pourrait m'aider n'hésite pas.
Encore Merci