Merci korgis pour ta réponse.
Cependant je n'ai pas utilisé de tableau mais seulement un deuxième fichier seq.
il me sert aussi pour les modifications donc c'est pratique.
voici le code de suppression
procedure supprimer(nom : String); {supprimer l'employer du fichier sequ}
var
fOld, fNew : TEmpFich;
emp : TEmploye;
begin
AssignFile(fOld, fichierOld);
if not FileExists(fichierOld) then Exit;
Reset(fOld);
//création ou utilisation de fNew qui stock les éléments non supprimés
AssignFile(fNew,fichierNew);
if FileExists(fichierNew) then
Reset(fNew)
else
Rewrite(fNew);
Seek(fNew,0);
Truncate(fNew);
Seek(fOld,0);
while not Eof(fOld) do
begin
//recherche de l'élément à supprimé
Read(fOld, emp);
if not(emp.Nom = nom) then
{ecriture des élément non supprimé dans le fNew}
begin
Write(fNew, emp);
//ShowMessage(affEmployer(emp) + emp.Prenom + emp.Salaire + ' est copier dans le nouveau fichier');
end;{if}
end;{while}
{ecraser les infos de fOld avec les infos de fNew}
Rewrite(fOld);
Seek(fOld,0);
Truncate(fOld);
Seek(fNew,0);
while not Eof(fNew) do
begin
Read(fNew, emp);
Write(fOld, emp);
end;{while}
CloseFile(fOld);
CloseFile(fNew);
end;
et le code pour la modification
procedure modifier(nom : String);
var
fichier : TEmpFich;
emp : TEmploye;
begin
fmPrinc.btnEnregistrerModif.Visible := True;
{remplire les champs avec les info}
{trouver les infos dans le fichier seq avec le nom}
if not FileExists(fichierOld) then Exit;
AssignFile(fichier, fichierOld);
Reset(fichier);
Seek(fichier,0);
while not Eof(fichier) do
begin
Read(fichier, emp);
if UpperCase(emp.nom) = UpperCase(nom) then
begin
fmPrinc.edNom.Text := emp.nom;
fmPrinc.edPrenom.Text := emp.Prenom;
fmPrinc.edSalaire.Text := emp.Salaire;
if emp.Homme then
fmPrinc.rdbHomme.Checked := True
else
fmPrinc.rdbFemme.Checked := True;
empPourModif := emp;
end;{if nom}
end;{while}
{désactivation du bouton ajout pour éviter les doublons}
fmPrinc.btnAjouter.Enabled := False;
end;
procedure enregistrerModif;
var
emp : TEmploye;
fOld, fNew : TEmpFich;
begin
{Supprimer l'ancien ref du fichier old}
{puis ajouter la nouvelle ref dans le fichier old}
AssignFile(fOld,fichierOld);
AssignFile(fNew,fichierNew);
if not FileExists(fichierOld) then Exit;
Reset(fOld);{lecture}
Rewrite(fNew);{ecriture}
Seek(fOld,0);
Seek(fNew,0);
Truncate(fNew);
while not Eof(fOld) do
begin
Read(fOld, emp);
if not(UpperCase(emp.Nom) = UpperCase(empPourModif.Nom)) then
Write(fNew,emp);
end;{while}
{l'ancien élément avec ses anciennes valeurs n'a pas été copier dans le nouveau fichier}
{ajout de l'ancien élément avec les nouvelles valeurs dans le fichier}
emp.Nom := fmPrinc.edNom.Text;
emp.Prenom := fmPrinc.edPrenom.Text;
emp.Salaire := fmPrinc.edSalaire.Text;
emp.Homme := fmPrinc.rdbHomme.Checked;
Write(fNew,emp);
{Copie du new vers old}
Rewrite(fOld);
Seek(fOld,0);
Truncate(fOld);
Seek(fNew,0);
while not Eof(fNew) do
begin
Read(fNew, emp);
Write(fOld, emp);
end;{while}
remplirListe;
viderChamp;
{cacher le bouton enregistrer modif pour éviter les erreurs user}
fmPrinc.btnEnregistrerModif.Visible := False;
CloseFile(fOld);
CloseFile(fNew);
end;