Probleme gestion fichier typé pascal

Résolu/Fermé
offa Messages postés 21 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 23 avril 2008 - 5 nov. 2007 à 22:55
ZOUARI Messages postés 60 Date d'inscription lundi 26 avril 2004 Statut Contributeur Dernière intervention 14 mai 2011 - 8 janv. 2008 à 13:06
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.
A voir également:

3 réponses

ZOUARI Messages postés 60 Date d'inscription lundi 26 avril 2004 Statut Contributeur Dernière intervention 14 mai 2011 29
14 déc. 2007 à 16:16
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.
0
offa Messages postés 21 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 23 avril 2008 8
24 déc. 2007 à 00:00
s il vous plait j ai besoin de votre aide je sait pas comment manipuler les fichiers de type chaine de caractere
merci
0
ZOUARI Messages postés 60 Date d'inscription lundi 26 avril 2004 Statut Contributeur Dernière intervention 14 mai 2011 29
8 janv. 2008 à 13:06
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).
0