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

Modules Perl Discussion :

[Archive::Zip] - probleme avec extractToFileHandle


Sujet :

Modules Perl

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [Archive::Zip] - probleme avec extractToFileHandle
    Bonjour,

    j'ai le soucis suivant :

    Je dois lire des archives zip à un membre (un très grand nombre, sur un serveur windows), rechercher dans ce membre un certain nombre d'information, en déterminer, entre autre, un chemin de stockage, puis les transférer par ftp sur une machine MVS.

    Vu le volume (5 millions de fichiers) j'ai pensé, peut être à tort, que je devais demander à mon script de rattacher chaque membre étudié à un file handle pour ensuite faire mon transfert.
    A l'exécution j'ai le message suivant :
    Can't locate object method "extractToFileHandle" via package "Archive::Zip::Archive"
    Pour info, je ne suis pas autorisé à installer de modules via PPM...par contre je peux le faire "à la main"...cherchez l'erreur ...et c'est ce que j'ai fait pour ce module.

    Voici un exemple de mon code. J'ai conservé l'essentiel de ce qui concerne mon problème.
    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
    #! Perl
    use warnings;
    use strict;
    use Archive::Zip qw( :ERROR_CODES :CONSTANTS );
     
    my $FicZip = "H:/HISTORIQUE BULL/ce/ij/gestion/contrat/335/0/0/0/0/3350000091.txt.zip";
    my $FicAlire = "3350000091.txt";
     
    my $somezip = Archive::Zip->new();
     
    unless ( $somezip->read( "$FicZip" ) == AZ_OK ) {
        die "1 - Erreur de lecture de <$FicZip> : $!\n";
    }
     
    my $contenu = $somezip->contents( "$FicAlire" );
     
    print $contenu,"\n";
    ##### Jusque ici ca roule ####
     
    open(FO,">c:/temp/tempo")
        or die "2 - Erreur ouverture de FO\n";
     
    $somezip->extractToFileHandle("FO")
        or die "3 - Impossible attacher le membre a FO \n"; ### ligne qui ne declenche l'anomalie
    Merci de votre aide et vos avis éclairés

  2. #2
    Membre confirmé Avatar de Beniou
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 357
    Points : 515
    Points
    515
    Par défaut
    Bonjour,

    Et si tu essayes d'importer la fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    use Archive::Zip qw( :ERROR_CODES :CONSTANTS extractToFileHandle);
    Ou alors en appelant directement la méthode via :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Archive::Zip->extractToFileHandle("FO")
    De plus, je ne connais pas le module mais cette méthode requiert un "FileHandle" or tu lui passes la chaines de caractère "FO".
    Peut être que ceci marcherait mieux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $somezip->extractToFileHandle(<FO>)
        or die "3 - Impossible attacher le membre a FO \n";
    Ou alors créer un filehandle avec la méthode
    IO::File->new

  3. #3
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 499 184
    Points
    499 184
    Par défaut
    Utilise le module Archive::Extract, il est simple et efficace.

  4. #4
    Membre confirmé Avatar de Beniou
    Homme Profil pro
    Inscrit en
    Novembre 2009
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Novembre 2009
    Messages : 357
    Points : 515
    Points
    515
    Par défaut
    Bon mon post d'avant a été rédigé sans regarder vraiment au module ni même tester (ca m'apprendra ).

    Le module de Djibril est effectivement bien mais juste pour revenir à cette histoire de "Can't locate method ..." : en fait, en regardant le module sur CPAN cette méthode fait partie des "Low-level member data reading" qui s'appliquent apparemment aux "membres" (members) du zip.

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci pour vos réponses.

    Je vais tester vos différentes remarques et vous donnerais le résultat.

    Concernant le module Archive::Extract, je ne l'ai vu que plus tard, en parcourant le net, et j'ai l'impression qu'il n'est pas capable de me renvoyer aussi simplement que le module Archive::Zip le contenu du membre. Mais je me trompe peut être.


Discussions similaires

  1. Ouvrir les archive zip avec l'explorateur windows
    Par koKoTis dans le forum Windows XP
    Réponses: 2
    Dernier message: 20/08/2006, 23h17
  2. probleme avec des archive en c++
    Par armoni dans le forum C++
    Réponses: 7
    Dernier message: 30/06/2006, 09h43
  3. Problème avec une archive tar.gz
    Par rpd05 dans le forum Shell et commandes GNU
    Réponses: 14
    Dernier message: 27/06/2006, 17h56
  4. Problème avec une archive tar
    Par sylsau dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 16/12/2005, 09h57
  5. Faire des disquette d'archive pour apt avec mon lecteur zip ?
    Par narmataru dans le forum Administration système
    Réponses: 4
    Dernier message: 14/01/2005, 10h06

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