Bonjour tout le monde,

je n'ai pas l'habitude de faire du r�tro-portage, mais pour faire plaisir � 
un coll�gue (utilisant NT), je lui ai donn� un script perl d�velopp� sous 
Linux. 

Cela coince au niveau de la lecture d'un fichier binaire (> 100 KB) : la 
lecture  
    while ( read(ABI,$buf,1000) ) {  }
stoppe apr�s 3112 bytes.

J'ai de vieux souvenirs du CP/M et de DOS, o� CTRL-Z servait de marqueur de 
fin de fichier : en effet en position 3112, il y a '1A' hex : incroyable mais 
vrai.

A tout hasard, j'ai essay� 'sysread', qui donne le meme r�sultat.

--------------------------------------------------------------------------------------
J'ai trouv�, mais cela vaut peut-etre la peine de partager la r�ponse :

    perl cookbook p 292-293

"This legacy of the old CP/M filesystem ... has frustrated programmers for 
decades, an no end is in sight. Because DOS is compatible with CP/M file 
formats, Windows with DOS, and NT with Windows, the sins of the fathers have 
truly been visited unto the children of the fourth generation."

La parade : d�clarer le file handle comme binaire avec

'binmode(ABI);'  : sous Unix, Mac & Plan9, cela est inutile mais prend toute 
son importance sous DOS, Win...

--------------------------------------------------------------------------------------
-- 
        Bonne journ�e - Have a good day,

        Alain
+--------------------------------------------------------------------------------------
|  Dr Alain EMPAIN      Bioinformatique, G�n�tique Mol�culaire B43,
|  Fac. M�d. V�t�rinaire, Univ. de Li�ge, Sart-Tilman / B-4000 Li�ge  
|       [EMAIL PROTECTED]
|       WORK:+32 4 366 3821 Fax: +32 4 366 4122   GSM:+32 497 701764
|       HOME:+32 85 512341  -- Rue des Martyrs,7  B-4550 Nandrin


Répondre à