OVH Cloud OVH Cloud

Fichier binaire

2 réponses
Avatar
s.Müller
Bonjour,

J'ai le code suivant:
open OUT,'>file.bin';
print OUT '+',chr(10),'+';
close OUT;

Le dump en hexa de mon fichier file.bin devrait me donner:
2B 0A 2B
malheureusement le résultat est:
2B 0D 0A 2B

Pourquoi Perl transforme-t-il le chr(10) en 0D 0A et comment éviter cela ?

Par avance merci.
Stéphane

2 réponses

Avatar
Paul Gaborit
À (at) Tue, 7 Feb 2006 13:57:19 +0100,
"s.Müller" écrivait (wrote):
J'ai le code suivant:
open OUT,'>file.bin';
print OUT '+',chr(10),'+';
close OUT;

Le dump en hexa de mon fichier file.bin devrait me donner:
2B 0A 2B
malheureusement le résultat est:
2B 0D 0A 2B

Pourquoi Perl transforme-t-il le chr(10) en 0D 0A et comment éviter
cela ?


Mon petit doigts me dit que vous travaillez sur une plateforme
Windows.

La lumière vous viendra de la fonction 'binmode' :

open OUT,'>file.bin';
binmode OUT;
print OUT '+',chr(10),'+';
close OUT;

Et pour en savoir plus :

perldoc -f binmode

--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>

Avatar
s.Müller
J'ai posté plus vite que mon ombre, désolé.
"syswrite" avait momentanément résolu mon problème et je viens de tomber sur
"binmode" qui répond à mes questions.

"s.Müller" a écrit dans le message de news:
dsa5go$9a0$
Bonjour,

J'ai le code suivant:
open OUT,'>file.bin';
print OUT '+',chr(10),'+';
close OUT;

Le dump en hexa de mon fichier file.bin devrait me donner:
2B 0A 2B
malheureusement le résultat est:
2B 0D 0A 2B

Pourquoi Perl transforme-t-il le chr(10) en 0D 0A et comment éviter cela ?

Par avance merci.
Stéphane