Accueil > Forum > > > > Comment supprimer une donnée dans un fichier sequentiel
Comment supprimer une donnée dans un fichier sequentiel
samedi 6 octobre 2012 à 10:09:45 |
Comment supprimer une donnée dans un fichier sequentiel

roironm
|
Hello à tous,
J'aimerai supprimer un enregistrment dans un fichier seq, qqun connait la méthode pour réalisé cette action.
Merci
|
|
samedi 6 octobre 2012 à 13:03:59 |
Re : Comment supprimer une donnée dans un fichier sequentiel

korgis
|
Salut,
tu peux lire et stocker tes enregistrements dans un tableau dynamique, te positionner dans ce tableau sur l'index de l'enregistrement à supprimer, décaler les enregistrements qui suivent vers l'index inférieur, régler la longueur du tableau dynamique à Longueur - 1, puis écrire les enregistrements stockés dans le tableau dans le fichier en utilisant Rewrite.
Ça a l'air un peu complexe, mais avec un peu de méthode, ça me parait être la meilleure solution.
Bon courage.
|
|
samedi 6 octobre 2012 à 14:48:50 |
Re : Comment supprimer une donnée dans un fichier sequentiel

roironm
|
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
Code Delphi : 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
Code Delphi : 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;
|
|
lundi 8 octobre 2012 à 11:08:41 |
Re : Comment supprimer une donnée dans un fichier sequentiel

yanb
|
Salut,
j'ai la même opinion que Korgis, je passerai par un tableau dynamique, ceci éviterai de faire une gymnastique dans les fichiers...
Et au niveau comprehension ca serait peut-être plus simple.
ex : FTableauEmploye : array of TEmploye;
@+
|
|
lundi 8 octobre 2012 à 13:28:43 |
Re : Comment supprimer une donnée dans un fichier sequentiel

roironm
|
Salut,
oui c'est vrai qu'au niveau compréhension c'est pas top.
Mais j'ai découvert le TClientDataSet pour générer un .xml est-ce mieux?
|
|
Cette discussion est classée dans : fichier, donnée, supprimer, sequentiel
Répondre à ce message
Sujets en rapport avec ce message
Comment on fait pour ajouter ou supprimer une ligner avec les champs dans une base de donnée ? [ par Zangdar ]
Comment on fait pour ajouter ou supprimer une ligne avec les champs dans une base de donnée ?http://www.zangdar.fr.st
Lire & Supprimer un caractère dans un fichier [ par Encore1ben ]
Bonjour,J'ai repris le code source de mon prédécesseur concernant une application qui est censé formater un fichier texte en un autre. Malheureusement
Fichier relatif, supprimer un record ou un enregistrement [ par lebossbxl ]
Bonjour, j'ai du mal à effacer un record dans un fichier si vous saviez me mettre un code source ce serait gentil! Merci d'avance
supprimer des fichier [ par bobstien ]
Bonjour, J essaie de supprimer tout les fichier d un répertoire dans un FileListBox. J arrive à supprimer un seul fichier avec deleteFile Mais toute l
Supprimer un fichier dans le cache Internet [ par Pingouin57 ]
Salut à tous, Voila mon problème, mon programme télécharge régulièrement un fichier (un fichier *.ini) à partir d'internet, via URLDownloadToFile pou
sepprime fichier [ par adec0127 ]
Salut un prob.. dans mon l'application je ne arrive pas a supprimer les un fichier sous Windowsc'est un fichier que en supprime que sous dos comment f
supprimer fichier [ par jerome57440 ]
Bonjour, dans mon programme j'ai une procedure qui permet de supprimer un fichier.Lorsque j'execute j'ai une erreur mais elle ne seproduit pas toujour
Comment supprimer une ligne dans un fichier Text? [ par NicoIRIS ]
Bonjour à tous,Voici mon petit problème... Je souhaiterai savoir s'il éxiste une méthode qui permmettrait de supprimer une ligne dans un fichier Text.
Supprimer des données d'un fichier [ par ytillang30400 ]
Bonjour à tous. Pour ajouter des données dans un fichier, on a "write", "append", etc... Mais pour supprimer des données sans avoir recours à un aut
supprimer un fichier commençant par un point à la racine [ par JackNUMBER ]
Bonjour à tous ! Étonnamment je n'arrive pas à supprimer un fichier nommé [b].blabla.txt[/b] à la racine d'un disque amovible...... [b]DeleteFile('G:\
Livres en rapport
|
Derniers Blogs
ETENDRE LE TEAM WEB ACCESS DE TFS 2012 - STEP 0ETENDRE LE TEAM WEB ACCESS DE TFS 2012 - STEP 0 par Philess
L'extensibilité du Team Web Access
Le Web Access (site d'équipe) de Team Foundation Server a été complètement réécrit dans la version 2012 avec pas moins de 400.000 lignes de JavaScript. Ce nouveau modèle a été pensé pour offrir de grandes...
Cliquez pour lire la suite de l'article par Philess SIMULER FACILEMENT L'ENVOI DE MAILSIMULER FACILEMENT L'ENVOI DE MAIL par JeremyJeanson
il m'a été demandé, à plusieurs reprises, comment je faisais pour simuler l'envoi de mail lors de mes démos de Workflow Foundation. Ma solution est plutôt simple : j'utilise la configuration par défaut du SmtpClient et j'oriente les mails vers un dossier ...
Cliquez pour lire la suite de l'article par JeremyJeanson VOTEZ POUR LE TOP 10 DES INFLUENCEURS SHAREPOINT FRANCOPHONES !VOTEZ POUR LE TOP 10 DES INFLUENCEURS SHAREPOINT FRANCOPHONES ! par Patrick Guimonet
Si ce n'est déjà fait (comme plus de 600 personnes déjà), il est encore temps de voter pour le concours TOP 10 des influenceurs SharePoint francophones ! Il est organisé par harmon.ie et accessible ici : http://harmon.ie/top-...
Cliquez pour lire la suite de l'article par Patrick Guimonet [CONF'SHAREPOINT] DERNIER RAPPEL ! :-)[CONF'SHAREPOINT] DERNIER RAPPEL ! :-) par Patrick Guimonet
La Conf'SharePoint en chiffres c'est : 3 jours de SharePoint ! 4 parcours et 60 sessions 17 partenaires représentant toutes les fac...
Cliquez pour lire la suite de l'article par Patrick Guimonet
Logiciels
Easy-Planning (4.5.0.11)EASY-PLANNING (4.5.0.11)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté a... Cliquez pour télécharger Easy-Planning CVEasy (3.1.0.51)CVEASY (3.1.0.51)PHMSD-CVEasy est un logiciel d'aide à la rédaction de CV d'une simplicité déconcertante.
PHMSD-C... Cliquez pour télécharger CVEasy LettresFaciles 2011 (8.6.0.31)LETTRESFACILES 2011 (8.6.0.31)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011 sDEVIS-FACTURES vlPRO (8.4.2.62)SDEVIS-FACTURES VLPRO (8.4.2.62)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO Devis-Factures PHMSD (2.1.0.11)DEVIS-FACTURES PHMSD (2.1.0.11)Configuration minimale
Nécessite Windows™ 2000, XP, Windows 7, 8, Vista (Service Pack à... Cliquez pour télécharger Devis-Factures PHMSD
|