Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Zeilen löschen (https://www.delphipraxis.net/91462-zeilen-loeschen.html)

Tommy1988 5. Mai 2007 08:47


Zeilen löschen
 
Hallo kann mir wer sagen, wie ich auf Buttonklick bestimmte Zeilen aus einer TXT-Datei löschen kann?

Wenn ein Label das Caption "10" hat, dann soll aus einer textdatei auch eine zeile die mit "10" anfängt gelöscht werden.

Habe schon im Forum geguckt, auch etwas gefunden, aber leider ist das nicht das was ich suche. :cry:

Blackheart 5. Mai 2007 09:16

Re: Zeilen löschen
 
Am besten lädst Du die Datei in eine Stringlist und suchst deinen string mit Pos.
Löschen kannst Du mit Lines.Delete mal so als Ansatz.

SirTwist 5. Mai 2007 09:17

Re: Zeilen löschen
 
Eigentlich ganz einfach:

Die Datei einlesen, nach Zeilen durchsuchen, die mit dem gewünschten Text anfangen, diese löschen, und die Datei wieder speichern.

Wenn es sich um eine Textdatei handelt, könntest Du eine TStringlist nehmen, um die Datei in den Speicher zu laden (LoadFromFile), dann kannst Du auch relativ einfach durchsuchen und löschen und schlussendlich benutzt Du SaveToFile, um den Text wieder zu speichern.

Tommy1988 5. Mai 2007 09:20

Re: Zeilen löschen
 
jetzt wo ich beide post durchgelesen habe, kapier ich nix mehr. kann mir wer eine kleines beispiel geben aus dem ich lernen könnte?

es ist eine ini datei aber im prinzip ist es ja fast das selbe..

Apollonius 5. Mai 2007 09:22

Re: Zeilen löschen
 
Du erstellst eine TStringlist, lädst mit loadfromfile die Datei in die Stringlist, löschst mit delete die fragliche Zeile und speicherst die Liste mit savetofile ab.
Hoffe geholfen zu haben
Apollonius

bitsetter 5. Mai 2007 09:37

Re: Zeilen löschen
 
Hi,

so in etwa war das gemeint:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  loop : integer;
  sl: TStringList;
  Pfad : String;
begin
  Pfad := 'C:\1.txt';
  if FileExists(Pfad) then
  begin
    sl:= TStringList.Create;
    try
      sl.LoadFromFile(Pfad);
      for loop := Pred(sl.Count) downto 0 do
      if Pos(Label1.Caption, sl.Strings[loop])= 1 then
        sl.Delete(loop);
      sl.SaveToFile(Pfad);
    finally
      sl.Free;
    end;
  end;
end;

DP-Maintenance 5. Mai 2007 11:04

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Delphi-Frage

marabu 5. Mai 2007 14:02

Re: Zeilen löschen
 
Hallo,

Zitat:

Zitat von Tommy1988
es ist eine ini datei aber im prinzip ist es ja fast das selbe..

wenn es eine INI-Datei ist, dann ist das Löschen über einen key prefix etwas seltsam. Wenn du aber den Key '10' aus einer Section löschen möchtest, dann geht das recht einfach:

Delphi-Quellcode:
uses
  IniFiles;

var
  fn: TFileName;
  ini: TMemIniFile;

begin
  fn := ChangeFileExt(ParamStr(0), '.ini');
  with TMemIniFile.Create(fn) do
  begin
    DeleteKey('Section', '10');
    UpdateFile;
    Free;
  end;
end;
Getippt und nicht getestet.

Freundliche Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:27 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz