Supprimer un élément du fichier de données grâce à un accès direct :
{Ouverture et accès directe à une valeur dans un fichier de données program fichier_eleves; var procedure ouvrir(var eleve1:f_eleve); procedure saisie(var rang:byte;p_fin:byte); procedure suppression(var eleve1:f_eleve;rang:byte;p_fin:byte); seek(eleve1,rang); {écraser la valeur à supprimée par la dernière valeur} seek(eleve1,p_fin); {tronquer le fichier à partir de la dernière valeur} begin p_fin := filesize(eleve1)-1; saisie(rang,p_fin); suppression(eleve1,rang,p_fin); close(eleve1);
à fin de la supprimer. €
cas ou les valeurs ne sont pas triées}
uses wincrt;
type f_eleve = file Of string; {Type fichier de chaînes}
eleve1 : f_eleve; {instance de f_eleve}
rang, p_fin : byte;
var
chemin : string;
begin
chemin:='c:\fich_el.dat';
assign(eleve1,chemin);
reset(eleve1);
end;
begin
repeat
writeln('entrer le rang de l''élève à supprimé : (0 --> ',p_fin,')');
readln(rang);
until rang in [0..p_fin];
end;
var
ch : string;
begin
seek(eleve1,p_fin); {récuperation de la dernière valeur du fichier}
read(eleve1,ch);
write(eleve1,ch);
truncate(eleve1);
end;
ouvrir(eleve1);
write('L''enregistrement n° : ',rang,' a été supprimé avec succès !');
end.
No Comments