Fichier accès direct

ricomiracle Messages postés 195 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 30 novembre 2009 - 27 déc. 2005 à 12:57
ricomiracle Messages postés 195 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 30 novembre 2009 - 28 déc. 2005 à 12:21
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

simtiers Messages postés 207 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 2 novembre 2006
27 déc. 2005 à 13:53
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...)
0
ricomiracle Messages postés 195 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 30 novembre 2009
27 déc. 2005 à 14:02
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.
0
simtiers Messages postés 207 Date d'inscription jeudi 3 avril 2003 Statut Membre Dernière intervention 2 novembre 2006
27 déc. 2005 à 18:15
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...
0
ricomiracle Messages postés 195 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 30 novembre 2009
28 déc. 2005 à 12:21
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
0
Rejoignez-nous