{ Le programme qui suit - crée un fichier d'enregistrements, - le parcours , - lui rajoute des enregistrements en fin de fichier et - accède directement à certains enregistrements. } PROGRAM Fichiers; TYPE Type_article = RECORD Nom : STRING[12]; Age : INTEGER; Poids : REAL END; VAR Nom : STRING[12]; Age : INTEGER; Poids : REAL; I : INTEGER; Article : Type_article; Fichier : File OF Type_article; BEGIN ASSIGN(Fichier, 'Fich.Pas'); { Création d'un fichier avec 5 enregistrements } REWRITE(Fichier); FOR I:= 1 TO 5 DO BEGIN WRITELN('Introduire Article N_ ', I ); WRITE('Nom ?'); READLN (Nom); WRITE('Age ?'); READLN (Age); WRITE('Poids ?'); READLN (Poids); Article.Nom := Nom; Article.Age := Age; Article.Poids := Poids; WRITE(Fichier, Article) END; { Parcours du fichier créé et listage de ses éléments } RESET(Fichier); WHILE NOT EOF(Fichier) DO BEGIN READ(Fichier, Article); WRITELN( Article.Nom, ' ',Article.Age, ' ', Article.Poids:4:2); READLN; END; { Positionnement à la fin du fichier et rajout de deux articles } SEEK(Fichier, Filesize(Fichier)); FOR I:= 1 TO 2 DO BEGIN WRITELN('Introduire Un Autre Article' ); WRITE('Nom ?'); READLN (Nom); WRITE('Age ?'); READLN (Age); WRITE('Poids ?'); READLN (Poids); Article.Nom := Nom; Article.Age := Age; Article.Poids := Poids; WRITE(Fichier, Article) END; { Récupération du troisième enregistrement } SEEK(Fichier, 2); READ(Fichier, Article); WRITELN( Article.Nom, ' ',Article.Age, ' ', Article.Poids:4:2); READLN; { Récupération du septième enregistrement } SEEK(Fichier, 6); READ(Fichier, Article); WRITELN( Article.Nom, ' ',Article.Age, ' ', Article.Poids:4:2); READLN; END.