Re: Devoir de vacances : déchiffra ge de Streams

Philippe Laval <[email protected]>
Newsgroups gmane.comp.lang.ada.france
Organization CNRS
Message-ID <[email protected]>
parsy jean-pierre a écrit :

>>J'essaie de lire un vieux fichier enregistré au
>>format HP-LIF avec une 
>>machine depuis longtemps mise au rebut. Avec un
>>éditeur hexa, on voit 
>>qu'après un en-tête facile à enlever le reste du
>>fichier est composé de 
>>lignes de caractères précédées de 2 bytes : l'un est
>>00 hexa et l'autre 
>>est le nombre de caractères de la ligne, en hexa.
>>Par exemple 
>>00,13,suivi de 19 caractères, 00,19 et 25
>>caractères, etc.
>>En lisant le fichier comme un Stream, avec
>>Character'Read j'arrive à me 
>>positionner sur chaque 00 (ASCII.Nul), re-faire un
>>Character'Read et 
>>lire ensuite chaque caractère jusqu'au 00 suivant.
>>Mais je ne parviens 
>>pas à lire à lire le nombre hexa qui suit le 00 (à
>>moins que ce 00 ne 
>>fasse partie du nombre, qui serait alors un entier
>>sur 16 bits).
>>Ni 'Pos() de ce qui a été lu avec Character'Read, ni
>>Integer'Read, ni 
>>Short_Integer'Read, ni Short_Short_Integer'Read, ni
>>aucune autre 
>>combinaison exotique que j'ai essayé ne me donnent
>>la valeur de ce nombre.
>>Quelqu'un peut-il m'aider ?
>>    
>>
>
>Je ne suis pas sur qu'Ada soit le meilleur langage
>pour faire ce genre de manip.
>
>Si ton fichier n'est pas trop gros ( à defaut envoie
>moi un extrait; les 10 premières lignes par exemple )
>Je ve bien te le transformer en fichier texte
>classique
>( DOS CR+LF Unix LF ou MAC CR ) en Ascii  à partir de
>C 
>ou Java
>  
>
Je parviens très bien à décoder le fichier, sauf que de temps en temps 
un caractère surnuméraire -- qui est réellement dans le fichier -- 
apparaît à la fin de certaines lignes. Mais le nombre exact de 
caractères de la ligne a lui été enregistré dans le byte qui suit 00. Il 
suffirait de faire une boucle sur ce nombre avec Character'Read.
Si on y arrive en C je ne vois pas pourquoi on n'y arriverait pas en Ada 
:-).
P.S. Réponse à Stéphane Rivière : lifutil veut absolument la disquette 
HP-LIF, or celle-ci est perdue et je n'en ai pas d'image binaire.
Comme je parviens presque à lire le fichier, rescapé d'un transfert sur 
station Unix avec sans doute un utilitaire du genre HPWUTIL, la question 
que je pose est surtout comment lire avec Stream_IO la valeur de ce 
second byte ?

Philippe Laval
Observatoire océanologique 
Villefranche-sur-Mer
Email:     [email protected]

_______________________________________________
Site WWW de l'association Ada-France: http://www.ada-france.org/
[email protected]
http://www.ada-france.org/mailman/listinfo/ada-france
smime.p7s (application/x-pkcs7-signature, 3.5 KB) - not displayed
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.