type Fiche=record
numero:integer;
nom:string;
genre:string;
end;
Fichier=file of Fiche;
procedure NouveauFichier(CheminDAcces:string);
var f:Fichier;
begin
assign(f,CheminDAcces);
rewrite(f);
close(f);
end;
procedure SupprimerFichier(CheminDAcces:string);
var f:Fichier;
begin
assign(f,CheminDAcces);
erase(f);
end;
function OuvrirFichier(CheminDAcces:string):Fichier;
begin
assign(result,CheminDAcces);
reset(result);
end;
procedure FermerFichier(var FichierOuvert:Fichier);
begin
close(FichierOuvert);
end;
function CreerFiche(NumeroDuFilm:integer;NomDuFilm,GenreDuFilm:string):Fiche;
begin
result.numero:=NumeroDuFilm;
result.nom:=NomDuFilm;
result.genre:=GenreDuFilm;
end;
function SontEgales(Fiche1,Fiche2:Fiche):boolean;
begin
result:=(Fiche1.numero=Fiche2.numero) and (Fiche1.nom=Fiche2.nom) and (Fiche1.genre=Fiche2.genre);
end;
procedure AjouterFiche(var FichierOuvert:Fichier;FicheDuFilm:Fiche);
begin
seek(FichierOuvert,filesize(FichierOuvert));
write(FichierOuvert,FicheDuFilm);
end;
function ChercherFiche(var FichierOuvert:Fichier;FicheDuFilm:Fiche):integer;
var FicheParcourue:Fiche;
begin
seek(FichierOuvert,0);
while not eof(FichierOuvert) do
begin
read(FichierOuvert,FicheParcourue);
if SontEgales(FicheParcourue,FicheDuFilm) then begin
result:=filepos(FichierOuvert);
exit;
end;
end;
result:=-1;
end;
procedure RemplacerFiche(var FichierOuvert:Fichier;FicheOriginale,FicheModifiee:Fiche);
var i:integer;
begin
i:=ChercherFiche(FichierOuvert,FicheOriginale);
if i>=0 then begin
seek(FichierOuvert,i);
write(FichierOuvert,FicheModifiee);
end;
end;
procedure SupprimerFilm(var FichierOuvert:Fichier;FicheDuFilm:Fiche);
var i,n:integer; FicheDeFin:Fiche;
begin
i:=ChercherFiche(FichierOuvert,FicheDuFilm);
if i>=0 then begin
n:=filesize(FichierOuvert);
seek(FichierOuvert,n-1);
read(FichierOuvert,FicheDeFin);
seek(FichierOuvert,i);
write(FichierOuvert,FicheDeFin);
seek(FichierOuvert,n-1);
truncate(FichierOuvert);
end;
end;
La confiance n'exclut pas le contrôle