PB de récupération d'une variable dans un fichier en turbo pascal... - Delphi/Pascal - Programmation
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)
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?
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!
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
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
@++