Autor Beitrag
mambo
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76

Win XP
D6 Prof
BeitragVerfasst: Fr 11.04.03 10:52 
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 312



BeitragVerfasst: Fr 11.04.03 11:37 
Hier mein super quick and dirty code. Auf Richtigkeit keine Garantie.
ausblenden 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.


Zuletzt bearbeitet von ShadowCaster am Fr 11.04.03 11:46, insgesamt 1-mal bearbeitet
ShadowCaster
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 312



BeitragVerfasst: Fr 11.04.03 11:41 
hier ein etwas besserer Code, der alle Leeren Zeilen rauslöscht:

ausblenden 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;