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

avec Java Discussion :

Connaitre le nombre d'octets lus


Sujet :

avec Java

  1. #1
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut Connaitre le nombre d'octets lus
    Bonjour,
    je dois lire une partie d'un fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
          RandomAccessFile raf = new RandomAccessFile(monFichier, "r");
          int iTockenSize = 1000;
          byte[] byData = new byte[iTockenSize];
          raf.seek(500);
          raf.read(byData);
          String fichierContenu = new String(byData);
    Mon probleme est que mon seek est positionné à la mano...
    je cherche a connaitre le nombre d'octets lus avant qu' une variable (MonMot) est été rencontrée. Ce nombre d'octets servira pour initialisé le seek


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     while ( (ligne = raf.readLine()) != null )
            {
              if(ligne.equals("MonMot")){  
    //???? combien d'octet on été lu ???
    Merci de votre aide
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

  2. #2
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Bonjour totoche, tu peux utiliser la méthode getFilePointer.
    Citation Envoyé par Javadoc
    Returns:
    the offset from the beginning of the file, in bytes, at which the next read or write occurs.

  3. #3
    Membre confirmé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Points : 558
    Points
    558
    Par défaut
    Bonjour et merci CheryBen,
    Je presente le contexte : je parcours un module (vb) qui contient plusieurs procedure.
    je dois extraire le code d'une d'une procédure en particulier
    le prob est qu'une procédure possède un nom et aucune autre ne peut possèder le m^me (pas de surcharge en vb), mais toutes se termine par end sub...


    Maintenant grace à toi je pointe bien le debut de la sub a extraire je cherche dès lors à pointer sa fin , pour dimensionner mon tableau byte[] byData. (tjs a la mano pour l'instant)

    Je pense donc relire le fichier avec comme point d'entrer le seek et rediriger le flux dans un autre fichier (monFichierTemp). En suite lire monFichierTemp jusqu'a ce que je trouve end sub. (le 1er trouvé étant forcément celui de la procédure), ainsi j'aurai bien mes 2 pointeurs, qu'en penses-tu ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
       public void  LireFichier() {
        try 
          {
          RandomAccessFile raf = new RandomAccessFile(monFichier, "r");
          String ligne;
     
             while ( (ligne = raf.readLine()) != null )
            {
                if(ligne.equals("Sub GEN_RecupererInfosServeur()")){
                    pointeurDebutFichier = raf.getFilePointer();
                }
            }
     
          int iTockenSize = 1000;
          byte[] byData = new byte[iTockenSize];
          raf.seek(pointeurDebutFichier);
          raf.read(byData);
          fichierContenu = new String(byData);
     
          champTexte.setText(fichierContenu);
          }
       catch (IOException e) 
         {
         System.out.println("erreur dans: " + e);
         }
    La patience est un arbre aux racines amères, mais aux fruits ci-doux.

  4. #4
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Je pense à une solution beaucoup plus simple : tu lis tout le fichier que tu mets dans une String, ensuite tu utilises les méthodes indexOf, lastIndexOf, split, substring à ta convenance.
    Cela me paraît plus facile que ce que tu es en train de faire, ça répondrait à ton besoin non?

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

Discussions similaires

  1. Connaitre le nombre de mails non lus
    Par padodanle51 dans le forum C#
    Réponses: 6
    Dernier message: 09/03/2007, 16h03
  2. Compter le nombre d'octets lus dans un flux
    Par Le Furet dans le forum Entrée/Sortie
    Réponses: 25
    Dernier message: 09/03/2006, 08h19
  3. [VB.NET] Connaitre le nombre d'éléments sélectionnés
    Par stephtbest dans le forum ASP.NET
    Réponses: 7
    Dernier message: 16/02/2004, 14h52
  4. recv() et nombre d'octets lus...
    Par Gogoye dans le forum Réseau
    Réponses: 5
    Dernier message: 02/12/2003, 14h37
  5. comment connaitre le nombre ...
    Par mythtvtalk.com dans le forum Requêtes
    Réponses: 9
    Dernier message: 04/08/2003, 08h18

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