Entwickler-Ecke

Dateizugriff - Zeile aus einer Text-Datei löschen


mambo - Fr 11.04.03 10:52
Titel: Zeile aus einer Text-Datei löschen
Hallo !

Ich möchte aus einer bestehenden Textdatei eine leere Zeile herauslöschen!
Die Textdatei sieht folgendermassen aus:

Nummer; Name; Nachname;Geburtsdatum
***** leere Zeile ******
1;Kurt;Oberhollenzer;24.01.1998
2; usw.

Ich möchte also die 2. Zeile, die leer ist, herauslöschen.
Wie kann ich mich in der Textdatei bewegen und die Zeile löschen???

Danke inzwischen und Grüße
Heinz


ShadowCaster - Fr 11.04.03 11:37

Hier mein super quick and dirty code. Auf Richtigkeit keine Garantie.

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
procedure delline(FileName : String; DLine : Integer);
  InFile : TStringList;
begin
  InFile := TStringList.Create;
  InFile.LoadFromFile(FileName);
  InFile.Delete(DLine);
  InFile.SaveToFile('Neu' + FileName);
  InFile.Free;
end;


Naja, das Öffnen der Datei musst du noch mit einem try-except block oder ähnlichem abfangen. Das hab ich jetzt nicht gemacht.

Ich hoffe, das hilft dir.


ShadowCaster - Fr 11.04.03 11:41

hier ein etwas besserer Code, der alle Leeren Zeilen rauslöscht:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
procedure delEmptyLines(FileName : String);
  i  : Integer;
  InFile : TStringList;
begin
  InFile := TStringList.Create;
  try
    InFile.LoadFromFile(FileName);
    for i := 0 to InFile.Count - 1 do
    begin
       if trim(Infile.Strings[i]) = '' then
         InFile.Delete(i);
    end;
    InFile.SaveToFile('Neu' + FileName);
  finally
    InFile.Free;
  end;
end;