Probleme gestion fichier typé pascal

[Résolu/Fermé]
Signaler
Messages postés
21
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
23 avril 2008
-
Messages postés
60
Date d'inscription
lundi 26 avril 2004
Statut
Contributeur
Dernière intervention
14 mai 2011
-
salut
j'ai un programme qui permet de remplire un fichier d'enregistrement par la suite d'afficher ce fichier et finalement chercher n enregistrement precis mais ce programme n'a pas voulu marcher a l'aide SVP

program te;
uses wincrt;

type
test=record
nom:string;
age:integer;
end;
fiche=file of test;
var f:fiche;
x,t:test;rep:char;exis,nomP:string;
begin
assign(f,'c:\ficenre');
rewrite(f);
repeat
with x do
begin
writeln('nom=');
readln(nom);
writeln('age=');
readln(age);

end;
write(f,x);
writeln('rep=');
readln(rep);
until rep='N';

writeln('donnez un nom');
readln(nomP);

while not(eof(f)) do
begin
WRITE('rttyyyy');
read(f,t);
with t do
begin
writeln('nom=',t.nom);
writeln('age=',t.age);
end;
read;
end;
while not(eof(f)) do
begin
read(f,t);
if nomp=t.nom
then
begin
writeln('bon');
end;
end;
close(f);
end.

3 réponses

Messages postés
60
Date d'inscription
lundi 26 avril 2004
Statut
Contributeur
Dernière intervention
14 mai 2011
29
il faut ajouter la procédure Reset avant de commençer votre recherche ou bien l'affichage
Voila la solution: (il faut changer les noms des structures de données)
program te;
uses wincrt;

type
test=record
nom:string;
age:integer;
end;
fiche=file of test;
var f:fiche;
x,t:test;rep:char;exis,nomP:string;
begin
assign(f,'c:\ficenre');
rewrite(f);
repeat
with x do
begin
writeln('nom=');
readln(nom);
writeln('age=');
readln(age);

end;
write(f,x);
writeln('Voulez vous enregistrer un autre test ');
readln(rep);
until (upcase(rep) = 'N');

writeln('donnez un nom');
readln(nomP);

Reset (f);
while not eof(f) do
begin
read(f,t);
if nomp = t.nom then
writeln('bon');

end;
close(f);
end.
Messages postés
21
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
23 avril 2008
8
s il vous plait j ai besoin de votre aide je sait pas comment manipuler les fichiers de type chaine de caractere
merci
Messages postés
60
Date d'inscription
lundi 26 avril 2004
Statut
Contributeur
Dernière intervention
14 mai 2011
29
Tout d'abord il faut comprendre la différence entre un fichier typé et un fichier texte:
un fichier typé signéfié qu'il est composeé des enregistrements de même type, et on le déclare de cette mamière:
nom_logique : file of type_composants;
exemples:
f1 : file of integer;
f2 : file of real;
f3 : file of char;
f4 : file of string;
mais un fichier texte il est composé par lignes et bien sur chaque ligne est composé par des caractères c'est pourquoi en peut le nommé aussi fichier ASCII ,et on le déclare de cette manière:
nom_logique : Text;
exemple
f5 : text;
Donc un fichier texte n'est pas un fichier de type caractère et non plus de type chaîne de caractères
donc si en dit que j'ai un fichier de type chaîne de caractères il faut comprendre qu'il ne s'agit pas d'un fichier texte;
Si cela est bien claire il faut s'avoir ensuite les fonctions et les procédures qui peuvent être applique sur les fichiers typés et sur les fichiers texte, comme filePos, seek, truncate, eof, writeln, readln, filesize, rename, erase, ...
A la fin il faux s'avoir comment combiner les instructions naicessaire pour atteindre votre objectif (résoudre votre broblème).