begin process at 2012 02 10 04:58:15
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

Fichier / Disque

 > 

Suppression ligne dans un textfile


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Suppression ligne dans un textfile

vendredi 23 juillet 2004 à 11:43:15 | Suppression ligne dans un textfile

coframi


Existe il une autre méthode pour supprimer une ligne dans un fichier texte que celle ci:
- recopie des lignes voulues dans un fichier temporaire.
- renomage du fichier temporaire.
Je ne voudrais pas utiliser cette methode car mon fichier origine est volumineux.
vendredi 23 juillet 2004 à 13:05:52 | Re : Suppression ligne dans un textfile

japee

Membre Club Administrateur CodeS-SourceS
En passant par une TStringList, peut-être ?

Ca donnerait quelque chose comme ça :

procedure TForm1.Button1Click(Sender: TObject);
var Fichier: TextFile;
Ligne: String;
LigneASupprimer: String;
StrList: TStringList;
i: Integer;
begin
LigneASupprimer := 'La ligne à supprimer';
AssignFile(Fichier, 'TonFichier.txt');
{$I-}
Reset(Fichier);
{$I+}
if (IOResult = 0) then
begin
StrList := TStringList.Create;
try
repeat
ReadLn(Fichier, Ligne);
if Ligne <> LigneASupprimer then
StrList.Add(Ligne);
until EOF(Fichier);
CloseFile(Fichier);
Rewrite(Fichier);
for i := 0 to StrList.Count -1 do
WriteLn(Fichier, StrList[i]);
CloseFile(Fichier);
finally
StrList.Free;
end;
end;
end;


Bonne prog'
vendredi 23 juillet 2004 à 14:21:14 | Re : Suppression ligne dans un textfile

coframi

Merci pour ta réponse

Le problème avec cette solution c'est que je vais prendre beaucoup de mémoire.
vendredi 23 juillet 2004 à 18:03:28 | Re : Suppression ligne dans un textfile

yvemoreau

function supprimeLigne(nomFichier,ligne:String):Boolean;
var
L:TStringList;
x:Integer;

begin
result:=false;
if not fileexists(nomFichier)then exit;

result:=true;
L:=TStringList.Create;

try
try
L.LoadFromFile(nomFichier);

x:=L.IndexOf(ligne);

if x<>-1 then
begin
L.Delete(x);
L.SaveToFile(nomFichier);
end else result:=false;

except result:=false;
end;

finally
begin
L.Clear;
L.Free;
end;
end;

end;

yve
Salut japee !
vendredi 23 juillet 2004 à 22:04:26 | Re : Suppression ligne dans un textfile

japee

Membre Club Administrateur CodeS-SourceS
Salut, yve, y'avait un bail qu'on t'avait pas vu par ici.

Content d'avoir de tes nouvelles...

T'es vraiment trop fort !

Moi, j'avais "pondu" ce truc :

function FileDeleteLine(Fich, DelLigne: String): Boolean;
var F: TextFile;
Ligne: String;
StrList: TStringList;
i: Integer;
begin
Result := False;
AssignFile(F, Fich);
{$I-}
Reset(F);
{$I+}
if (IOResult = 0) then
begin
StrList := TStringList.Create;
try
repeat
ReadLn(F, Ligne);
if Ligne <> DelLigne then
StrList.Add(Ligne)
else
Result := True;
until EOF(F);
CloseFile(F);
if Result = True then
begin
Rewrite(F);
for i := 0 to StrList.Count -1 do
WriteLn(F, StrList[i]);
CloseFile(F);
end;
finally
StrList.Free;
end;
end;
end;


Je le mets tout de suite à la poubelle...

Et je m'empresse d'adopter ta technique qui est forcément plus rapide !

Quel bonheur d'apprendre... Merci !

P-S: passe un peu plus souvent sur le forum, en ce moment c'est les vacances, et ça manque un peu de "pointures" pour répondre à certaines questions un peu, euh... eh bien "pointues"

A +
samedi 24 juillet 2004 à 03:38:05 | Re : Suppression ligne dans un textfile

yvemoreau

ouais bon pas trop de fleur quand même ,à la cheville de delphiprog!!!

Il y aurait aussi les TStream, TFileStream qui pourrait être utilisé...

AssignFile(F, Fich);
{$I-}
Reset(F);
{$I+}
if (IOResult = 0) then
while not eof(F)do
begin
....
end;

ne doit pas être nécessairement disposé puisque c'est le seul moyen connu par moi pour lire les fichiers autre que texte...
car si l'on insère ce code avant la boucle while
{type TTextLineBreakStyle = (tlbsLF, tlbsCRLF);}
SetLineBreakStyle(F,tlbsLF);

on pourra lire le code d'une dll ou d'un exe ce qui ne pourrait être fait avec les stream ou un load from file TList.
même si impossible à comprendre c'est toujours mieux que le simple MZ!

Il y a du bon dans tout code tout dépend de la nécessité
yve


Cette discussion est classée dans : fichier, ligne, suppression, temporaire, textfile


Répondre à ce message

Sujets en rapport avec ce message

NB Ligne dans un fichier texte [ par ProGMaN007 ] salut, comment connaître le nombre de ligne dans un fichier txt ? lire un fichier texte [ par mentral ] Bonjour,Il me faudrait un algo pour ouvrir un fichier texte, lire une ligne dont le numéro est choisi au hasard par un random, et affecter cette ligne Manipulation d'un fichier texte [ par koaiz ] Hug Tribue des Programmeur PalJ'utilise un fichier texte pour mon application comme log file mais j'ai un probleme car lors de la fermeture de l'appli suppression dans une BD XML [ par BlouMan ] je voudrais supprimer une ligne dans une BD XML mais elle ne s'en va pas...voila mon code:ClientDataSet.First;if ClientDataSet.Locate('champs', 'valeu fichier d'aide en ligne [ par bdv ] quelqu'un a t il déja réalisé une aide en lignequelque soit sa forme toutes idées, suggestions, ou sources bienvenuesthanks Effacer dans un fichier texte [ par Kundun2 ] Bonjour,Je n'arrive pas à effecer juste une ligne danbs un fichier texte.Mon fichier enumère plusieurs lignes : testligne1testligne2testligne3...je vo Rajouter une chaine de caractère en début de ligne d'un fichier texte [ par Gastounelli ] Tout est dit dans le sujet. J'en suis au niveau de lire chaque ligne du fichier    while not Eof(NomFicRefTxt)do      begin      Readln(NomFicRefTxt,C Decouper un fichier texte [ par ced0001 ] Salut a tous!! Je débute sous Delphi et je cherche un moyen de découper un fichier texte consitué de differentes parties. voici la structure du fichi Lecture de fichier. Boucle [ par pandaspirit ] Bonjour !J'ai un petit soucis avec la lecture de fichier texte...Sur chaque ligne, entre autres infos, j'ai l'identifiant de la ligne 1,2,3....,nJ'ess Ouverture, lecture d'un fichier en mode binaire [ par SMoG ] YoOOooOOoooooo la dedans :)bon voila, j'aimerais ouvrir et lire un fichier en mode binaire ligne par ligne, mais j'ai trouvé que des méthodes qui lise


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,420 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales