PB de récupération d'une variable dans un fichier en turbo pascal...

PB de récupération d'une variable dans un fichier en turbo pascal... - Delphi/Pascal - Programmation

Marsh Posté le 02-06-2004 à 11:39:55    

Hello,
Voila en gros qd je veus récupérer une variable de type string qui est contenu dans un fichier d'enregistrement de type record, et ba ya rien qui apparaît.... :-( voila le code :  
 
code pour entrer mes voitures  :  
 
program test;
type voiture = record nom,marque : string;
                      puissance : integer;
                      couple : integer;
                      prix : integer;
               end;
      ensemble = file of voiture;
var tuture : voiture;
    parking : ensemble;
    n,i : integer;
begin
assign(parking,'base_voiture.wil');
Rewrite(parking);
writeln('Combien de voiture ??');
readln(n);
for i:=1 to n do
begin
writeln('Nom : ');
readln(tuture.nom);
writeln('Marque : ');
readln(tuture.marque);
writeln('puissance : ');
readln(tuture.puissance);
writeln('couple : ');
readln(tuture.couple);
writeln('prix : ');
readln(tuture.prix);
write(parking,tuture);
end;
close(parking);
readln;
end.
 
Et code pour afficher les voitures :  
 
program test_lecture;
type voiture = record nom : string;
                      marque : string;
                      puissance : integer;
                      couple : integer;
                      prix : integer;
               end;
      ensemble = file of voiture;
var car : voiture;
    parking : ensemble;
begin
     assign(parking,'base_voiture.wil');
     reset(parking);
          read(parking,car);
          write('Nom : ',car.nom);
          write('     Marque : ',car.marque);
          write('     Puissance : ',car.puissance);
          write('     Couple : ',car.couple);
          write('     Prix : ',car.prix);
          writeln;
readln;
end.
 
Ce qui est zarb c que ça marche très bien pour les integer...
 
Voila si qqu sait
 
@++

Reply

Marsh Posté le 02-06-2004 à 11:39:55   

Reply

Marsh Posté le 03-06-2004 à 09:57:12    

Tu ne peux pas lire/écrire une chaîne de longueur variable comme ça.
Soit tu fixes la longueur (string[20] par exemple) soit tu écris/lis d'abord un entier spécifiant la longueur, puis tu l'alloues avec SetLength sur la chaîne, puis tu lis le tout en passant en paramètre de Read/Write le premier caractère de la chaîne (chaine[1] ou @chaine[1] s'il veut un pointeur)


Message édité par antp le 03-06-2004 à 09:57:30

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 03-06-2004 à 12:07:09    

ouaich d'accord ça a l'air plus compliqué que prévu mais c clair que c logique. Tu peux pa me filer un exemple tout con d'utilisation stp?

Reply

Marsh Posté le 03-06-2004 à 12:11:25    

ah nan finalement ça va c ballo.
Cela dit comment tu peu utiliser ta fonction setlength ?
 
merci au fait!

Reply

Marsh Posté le 03-06-2004 à 13:51:54    

Read(LaLongueur, SizeOf(LaLongueur);
SetLength(LaChaine, LaLongueur);
Read(LaChaine[1], LaLongueur);
 
mais bon, ça c'est vrai en Delphi. Il faut voir si ça passe bien en TP


Message édité par antp le 03-06-2004 à 13:52:33

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed