IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Comment avoir un pointeur sur une ligne particulière d'un fichier texte (autre)


Sujet :

Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 34
    Points : 33
    Points
    33
    Par défaut Comment avoir un pointeur sur une ligne particulière d'un fichier texte (autre)
    Bonjour, je travaille actuellement sur l'implémentation de base données.

    Je possède une base de donnée de la forme :

    Z4W2> VEIB5 9 F
    pf7RC <nHts 2 F
    dbq6k 5v;\k 8 F
    ^=fk1 I126w 7 M
    N0yaa nB4Yp 2 F
    FOUMR 7S>RI 5 F
    oBbxr 1SIQL 0 F
    ncWgx 4RcD0 4 F
    ToFgV ^q0ix 2 M
    I72m^ <;qE_ 10 F

    Soit | 5 ASCII (espace) 5 ASCII (espace) 1 int (espace) 1 char |

    Ma question est la suivante:
    J'utilise un BTree qui a comme keys le premier groupe de 5 caractères ASCII. Je cherche à avoir un "pointeur" contenue dans mon arbre qui sera directement relié à l'une des lignes.
    J'ai pensé à mettre ces données dans un fichier puis lorsque je veux avoir une info sur une des lignes je lis directement cette ligne sans devoir scanné.

    Mon problème, c'est que ce sont des énormes bases alors je peux pas me permettre de tout scanné. Du coup, je voudrais savoir si vous auriez quelque idées pour récupérer un pointeur d'un fichier ou un indice sans avoir à scanner toute le fichier pour trouver les infos ?
    (J'ai vu que pour un fichier texte, on a pas d'autre choix de scanné tout, d'autre genre de fichier sont possible ?)
    Merci d'avance.

  2. #2
    Membre confirmé

    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2011
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2011
    Messages : 181
    Points : 519
    Points
    519
    Billets dans le blog
    1
    Par défaut
    Slt.
    A ma connaissance, il n'y a pas d'autres moyens que de parcourir le fichier, section par section, jusqu’à obtenir la section voulu.
    Pour le type de fichier à utiliser, je te conseille les fichiers de type XML, il existe des implémentation en JAVA qui traite se type d'organisation de fichier (des parseurs tel que JDOM, SAX), ou bien des bases EXCEL (fichier .cls), il existe aussi ce qu'on appelle des pilotes. mais la aussi, les parseurs comme les pilotes font un parcours du fichier section par section.
    Remarques :
    Il existe un autre moyen, celui de l’implémentation d'une technique basée sur l'intelligence artificielle, comme celle implémentée pour le PROLOG, mais ca, sa nécessite un temps considérable.
    Tu risque d'avoir un problème de performances si tu utilise l'un des deux types de fichiers referenciés ci-dessus, vue que les données a enregistrées et a consultées sont volumineux.
    Bon courage.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 34
    Points : 33
    Points
    33
    Par défaut
    Bonjour,

    J'ai avancé sur mes recherches. J'ai découvert le disk controller avec des écritures en block, quelque chose comme storing file control ou mieux expliquer ce slide
    que je devrais aussi implémenter pour mon BTree au passage.

    Je pense qu'avec cette méthode mes accès écriture/lecture sur le disque dur seront beaucoup plus rapide que de passer par un quelconque format de fichier.

    Pensez-vous que cette méthode serait complexe à implémenté ?

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 804
    Points
    48 804
    Par défaut
    heu, le lien que tu donne concerne le codage d'un système de fichier, ce qui n'est pas ton cas. Java n'a pas accès irect aux disque.


    Pour l'accès aléatoire au fichier, il y a RandomAccessFile et, pour les ficheirs mappé en mémoire (plus performant) il faut passer par les FileChannel.

    Mais dans ce cas, forcément, tu te brosse sur la lecture ligne par ligne ou même la reconnaissance des caractère, faura tout te coltiner à la main. L'idée étant, tu saute à un enroit précis de ton fichier (en fonction de ta demande) et tu y lit les données à ta manière.

    Après, reste à maintenir un index sur les différentes sections de ton fichiers (genre XABFD commence à l'octet 75897 du fichier) et surtout, partie plus tordu, à gérer l'écriture.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 34
    Points : 33
    Points
    33
    Par défaut
    Daccord merci, je vais regarder ce que je peux faire

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Suppression d'une ligne particulière dans un fichier texte
    Par Aymeric41 dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 29/08/2011, 13h53
  2. Réponses: 3
    Dernier message: 23/07/2009, 13h11
  3. Comment avoir des div sur une même ligne sans utiliser float ?
    Par Sergejack dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 13/10/2007, 15h31
  4. Comment avoir des informations sur une table ?
    Par Shogun dans le forum Oracle
    Réponses: 2
    Dernier message: 09/01/2007, 15h40
  5. Comment avoir des information sur une BD?…
    Par kikimnet dans le forum Bases de données
    Réponses: 1
    Dernier message: 12/02/2005, 09h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo