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 fichier MS Word


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut lecture fichier MS Word
    Existe-t-il une façon plus simple de lire un fichier MS Word qu'en utilisant le module Win32::SharedFileOpen?


    Merci,

  2. #2
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Le problème est que le fichier n'est pas lu ligne par ligne.

    Si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    use Win32::SharedFileOpen qw(:DEFAULT new_fh $ErrStr);
     
            ...
     
     
    	# Use a lexical indirect filehandle that closes itself when destroyed:
            my $fh = new_fh();
            fsopen($fh, $seq_file, 'r', SH_DENYNO) or
                die "Can't read : $ErrStr\n";
            while (my $line = <$fh>) {
                print "> $line\n";
            }
    J'obtiens tout le contenu du fichier dans une seule variable $line (contenant des enter) ainsi que d'autres $line contenant des caractères spéciaux, des y avec tréma, des balises NULL, STX.

    J'ai essayé un split /\n/ sur le contenu du fichier mais cela ne fonctionne pas non plus.

    Avez-vous une idée, merci.

  3. #3
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Les fichiers MS Word étant au format binaire, je ne suis pas surpris du résultat obtenu. readline (soit l'opérateur <FH>) ne peut être utilisé à bon escient que sur des fichiers textes, non ?

  4. #4
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Citation Envoyé par Philou67430 Voir le message
    Les fichiers MS Word étant au format binaire, je ne suis pas surpris du résultat obtenu. readline (soit l'opérateur <FH>) ne peut être utilisé à bon escient que sur des fichiers textes, non ?
    Merci pour ton intérêt, c'est le module Win32/SharedFileOpen qui décrit cette méthode avec un filehandle.

  5. #5
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Par défaut
    Mmmmh... readline n'est pas décrit dans la document du module. Je suppose donc qu'elle se comporte comme avec un open standard.
    Cela ne change donc pas ma réponse : la lecture ligne à ligne par readline n'est pas adapté aux formats binaires (comme l'est MS Word).
    Aurais-je manqué quelque chose ?

  6. #6
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Citation Envoyé par Philou67430 Voir le message
    Cela ne change donc pas ma réponse : la lecture ligne à ligne par readline n'est pas adapté aux formats binaires (comme l'est MS Word).
    Le module File::Binary - Binary file reading module pourrait-il m'aider?

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/11/2010, 14h59
  2. Ouverture, lecture fichier word
    Par Z4ng3tsu dans le forum C#
    Réponses: 1
    Dernier message: 09/04/2010, 11h52
  3. Lecture de fichier Lotus word pro
    Par scaleo dans le forum Modules
    Réponses: 3
    Dernier message: 27/03/2006, 21h57
  4. Lecture fichier Word et remplacement paramètre
    Par Pfeffer dans le forum C++Builder
    Réponses: 4
    Dernier message: 21/02/2005, 17h30
  5. [langage] prob lecture fichier .txt
    Par martijan dans le forum Langage
    Réponses: 3
    Dernier message: 16/07/2003, 11h08

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