Existe-t-il une façon plus simple de lire un fichier MS Word qu'en utilisant le module Win32::SharedFileOpen?
Merci,
Existe-t-il une façon plus simple de lire un fichier MS Word qu'en utilisant le module Win32::SharedFileOpen?
Merci,
Le problème est que le fichier n'est pas lu ligne par ligne.
Si je fais
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.
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'ai essayé un split /\n/ sur le contenu du fichier mais cela ne fonctionne pas non plus.
Avez-vous une idée, merci.
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.
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 ?
Le module File::Binary - Binary file reading module pourrait-il m'aider?
Partager