Afficher le contenu d'un raf (ce raf est composé de plusieurs type de données)

daviddubois Messages postés 92 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 6 janvier 2012 - 21 juil. 2007 à 14:45
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 - 21 juil. 2007 à 20:49
Bonjour tout le monde,

Je suis occupé à faire un exercice sur le RandomAccessFile (raf).

Mon fichier raf se compose comme suit :

raf.writeChars("28/04/2007");raf.writeInt(16);raf.writeInt(23);raf.writeInt(25);raf.writeInt(29);raf.writeInt(38);raf.writeInt(39);raf.writeInt(2);
  raf.writeChars("02/05/2007");raf.writeInt(5);raf.writeInt(15);raf.writeInt(22);raf.writeInt(26);raf.writeInt(33);raf.writeInt(36);raf.writeInt(31);
  raf.writeChars("05/05/2007");raf.writeInt(6);raf.writeInt(20);raf.writeInt(22);raf.writeInt(26);raf.writeInt(27);raf.writeInt(38);raf.writeInt(33);

On commence donc avec un ensemble de caractère (chars) qui comporte 10 caractère, pour une taille de 20 octets (car un char est égal à 2 octets dans un raf).

Ensuite, on trouve 7 entiers, chacun vaut 4 octets, donc une ligne vaut 48 octets et l'ensemble des 3 lignes vaut 144 octets (taille du raf).

Ma question, avec une boucle for, comment puis-je afficher ces 3 lignes ?

Si il n'y aurait pas les chars, je pense que ça serait facile d'afficher les informations, mais c'est le mélange des chars et des entiers qui m'arrête.

Je vous remercie d'avance pour votre aide

3 réponses

cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
21 juil. 2007 à 19:52
tu lis ton fichier de facon binaire ... c est pas trs compliqué ;o) comme tu connai le format de chaque enreg ...

GodConan ;o)
0
daviddubois Messages postés 92 Date d'inscription vendredi 19 mars 2004 Statut Membre Dernière intervention 6 janvier 2012
21 juil. 2007 à 20:01
J'ai trouvé une autre solution mais c'est pas facile.

j'ai crée une variable tableau et je récupère un char par case du tableau.

Je transforme ensuite ce tableau dans une variable String :

String sChar = new String(chars)

Je suis maintenant occupé d'essayer de lire les dates, mais vue qu'il y'a des entiers juste après chaque date, j'obtiens la bonne date au premier passage de la boucle for mais ensuite des symboles.

J'utilise alors raf.seek mais c'est pas facile.

Saurais-tu me montrer un exemple avec les bytes stp ?

Merci d'avance.
0
cs_GodConan Messages postés 2113 Date d'inscription samedi 8 novembre 2003 Statut Contributeur Dernière intervention 6 octobre 2012 12
21 juil. 2007 à 20:49
fait toi une class que tu apelle Record (tu peux affiné le nom) ;o) et tu confi le decodage de chaque element a ta class ... en lui donnant le buffer de la taille d un enreg ou une ref sur le flux...
qd t aura trouvé ;o) un meilleur moyen tu n aura que peu de chose a changer... ;o)

GodConan ;o)
0
Rejoignez-nous