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