Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Inhalt der textdatei löschen (https://www.delphipraxis.net/102844-inhalt-der-textdatei-loeschen.html)

omata 6. Nov 2007 03:04

Re: Inhalt der textdatei löschen
 
Hallo meik,

hier noch ein Beispiel...
Delphi-Quellcode:
procedure ZeileVerarbeiten(Zeile:string);
begin
  ...
end;

procedure ReadAndDelete(Dateiname:string);
var Datei:Textfile;
    Zeile:string;
begin
  try
    assignfile(Datei, Dateiname);
    reset(Datei);
    while not eof(Datei) do begin
      readln(Datei, Zeile);  
      ZeileVerarbeiten(Zeile);
    end;
    rewrite(Datei);
  finally
    closefile(Datei);
  end;
end;
Gruss
Thorsten

Nuclear-Ping 6. Nov 2007 03:22

Re: Inhalt der textdatei löschen
 
Warum so kompliziert?
Delphi-Quellcode:
uses SysUtils, Classes, Dialogs;

// ...
var
  sl: TStringList;

begin
  // Instanz von TStringList anlegen ...
  sl := TStringListr.Create;
  try
    // Datei laden
    sl.LoadFromFile ('C:\...\datei.txt');

    // erste Zeile ausgeben
    ShowMessage (sl[0]);

    // erste Zeile löschen (Achtung: alle anderen Zeilen "rutschen" nach oben!)
    sl.Delete (0);
 
    // Datei wieder speichern ...
    sl.SaveToFile ('C:\...\datei.txt');

    // StringList freigeben
    FreeAndNil (sl);
  except
    // ... Fehler beim Laden?
    FreeAndNil (sl);
    raise Exception.Create ('Datei nicht gefunden.');
  end;
end;

Luckie 6. Nov 2007 12:38

Re: Inhalt der textdatei löschen
 
[quote="meik"]hallo,

ich wollte aus einer Textdatei den ersten Zeil löschen, das problem das ich die ganze textdatei lösche :-(

der code sieht so aus:

Delphi-Quellcode:
deletefile('command.txt');
Warum wundert dich das bei dieser Funktion? :wall:

marabu 6. Nov 2007 13:41

Re: Inhalt der textdatei löschen
 
Hallo meik,

falls du nur eine Zeile aus der Textdatei entfernen möchtest und die Textdatei nicht zu groß ist, dann solltest du dir diese Funktion anschauen:

Delphi-Quellcode:
function RemoveLine(fn: TFileName; index: Integer): string;
begin
  with TStringList.Create do
  try
    LoadFromFile(fn);
    if index < 0 then
      index := Count - index;
    Result := Strings[index];
    Delete(index);
    SaveToFile(fn);
  finally
    Free;
  end;
end;

// var line: string;
// line := RemoveLine('test.txt', 0);
Beim Aufruf von RemoveLine('test.txt', 0) wird dir der Inhalt der ersten Zeile zurückgeliefert und diese Zeile aus der Textdatei entfernt.

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:30 Uhr.
Seite 2 von 2     12   

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