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

Langage Perl Discussion :

lecture dans un fichier par bloc


Sujet :

Langage Perl

  1. #1
    Membre régulier
    Inscrit en
    Janvier 2007
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Janvier 2007
    Messages : 273
    Points : 83
    Points
    83
    Par défaut lecture dans un fichier par bloc
    Salut tout le monde!!!

    Voilà j'ai fait uen recherche rapide sur le site sans trop trouver de réponse à ma question qui me semble un peu bète.. mais bon.

    Voilà j'ai un client TCP qui recçoit en permanence des bloc de 512 octets. J'ai dumper ces infos direct dans un fichier text.
    Maintenant j'aimerais lire ces infos par bloc de 512 octets. ou 1024 caractère hexa.
    Donc en utilisant unpack("H1024",$stream) ca me sort des paquet de 1024 hexa. le soucis, c'est que je n'arrive pas à faire la boucle while.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    tant que (non end of file){
     
     
    $stream =unpack("H1024",$file);
    traitement($stream);
     
    }
    Ce code marche pas des masse.. donc si vous avez des idées. je suis preneur.

    Merci d'avance.

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    $/ est la variable dite "séparateur d'enregistrement", par défaut elle vaut "\n" et <> lit ligne par ligne, mais on peut lui donner d'autres valeurs. en particulier si on lui donne une référence sur un nombre, alors <> lit des blocs de caractères de la longueur donnée.

    Donc par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    open my($tcp_dump), '<', $filename
      or die "$filename : $!\n";
     
    { 
      local $/ = \512;
      while( my $block = <$tcp_dump> ) {
        my $stream = unpack( 'H1024', $block );
        # handle $stream
      }
    }
     
    close $tcp_dump;
    --
    Jedaï

Discussions similaires

  1. Lecture dans un fichier Word par pgm Delphi
    Par Bouillon dans le forum Langage
    Réponses: 12
    Dernier message: 19/11/2008, 16h35
  2. lecture ecriture de fichier par blocs
    Par pfeuh dans le forum C
    Réponses: 10
    Dernier message: 06/11/2008, 10h48
  3. Lecture de fichier par blocs
    Par nicolas66 dans le forum C++
    Réponses: 12
    Dernier message: 11/11/2006, 20h36
  4. [Débutant] Lecture dans un fichier texte
    Par babemagus dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 07/07/2005, 12h17
  5. Réponses: 12
    Dernier message: 14/06/2004, 13h06

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