Dans l'article <vaadnfTSdejnQTPVRVn_vwA@giganews.com>, enthalpie@domain-xyz.in
a dit...
J'ai tenté de copier une image (jpg) comme je copiais un fichier texte avec
une
bete commande
while (<LIRE>) {print ECRIRE $_;}
Le fichier créé fait bien la bonne taille mais n'est pas lisible comme une
image pour windows/paint etc. (bien qu'il l'ouvre en tant que tel puisque
l'extension est .jpg).
Apparement, le header n'est pas conforme.
Est ce qu'il s'agit d'un problème de caractères spéciaux ?
Oui. Il faut ouvrir vos fichiers en mode binaire.
Voir la faq :
http://www.bribes.org/perl/docfr/perlwin32faq8.html#LA325A6F1
Il est préférable d'utiliser la fonction read plutôt que <LIRE> car vous
lisez alors tout le fichier d'un coup en mémoire (il n'y a pas de "ligne"
dans un fichier binaire).
Si vous tenez à utiliser l'opérateur < >, alors vous pouvez fixer la taille
du tampon avec la variable $/. Voir :
http://www.bribes.org/perl/docfr/perlvar.html#LFFBFBD54
HTH
--
J-L.M.
http://www.bribes.org/perl