Delphi-PRAXiS
Seite 1 von 2  1 2   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Textdatei lesen und Inhalt in neuer abspeichern (https://www.delphipraxis.net/162625-textdatei-lesen-und-inhalt-neuer-abspeichern.html)

MutterGans 31. Aug 2011 16:05

Textdatei lesen und Inhalt in neuer abspeichern
 
Hallo,

ich würde gerne aus einer bereits bestehenden Textdatei auf meinem PC, per Delphi, eine bestimmte Anzahl an Zeilen auslesen und diesen Inhalt in eine neue Textdatei speichern. Ich hab mir schon ein paar Gedanken gemacht aber nie wirklich einen ansatz gefunden der mich zu Ansätzen bringt. Vielleicht kann man die Anzahl der Zeilen mit einer for-Schleife festlegen?!?

ensaron 31. Aug 2011 16:29

AW: Textdatei lesen und Inhalt in neuer abspeichern
 
Such mal in der Delphi Hilfe nach "Standardroutinen Eingabe - Ausgabe" ;)

Und ja, das Auslesen einer bestimmten Anzahl von Zeilen kannst du über eine for-Schleife umsetzen.

DeddyH 31. Aug 2011 16:30

AW: Textdatei lesen und Inhalt in neuer abspeichern
 
Hallo und Willkommen in der DP :dp:,

Du könntest die Datei im Ganzen in einer TStringlist einlesen, alle Zeilen ab X daraus löschen und anschließend die Stringliste wieder abspeichern oder Du nimmst die "alten" Routinen AssignFile, Reset, Rewrite, WriteLn, ReadLn und CloseFile, um zeilenweise zu lesen und zu schreiben.

MutterGans 31. Aug 2011 16:48

AW: Textdatei lesen und Inhalt in neuer abspeichern
 
Hallo DeddyH,

ich hab das schonmal mit den alten Routinen versucht hat aber nicht so geklappt! Ich weiß nicht wie ich mich bei dem einlesen eine bestimmte textdatei auswählen kann auf die er sich bezieht!
Hat vielleicht jemand n kleines Beispiel für mich? Vielleicht n paar Zeilen wie das aussehen könnte?!

DeddyH 31. Aug 2011 16:54

AW: Textdatei lesen und Inhalt in neuer abspeichern
 
Den Namen der Datei gibst Du bei AssignFile als 2. Parameter an. Du musst also 2 mal AssignFile aufrufen, einmal für die Quell- und einmal für die Zieldatei. Dann wird die Quelldatei zum Lesen, die Zieldatei zum Schreiben geöffnet (Reset bzw. Rewrite). Nun noch Zeile aus Quelle lesen (ReadLn) und in Ziel schreiben (WriteLn). Zum Schluss beide wieder schließen (CloseFile). Dazu noch ein wenig Fehlerbehandlung und fertig.

mkinzler 31. Aug 2011 16:56

AW: Textdatei lesen und Inhalt in neuer abspeichern
 
Besser wäre es aber die Funktionlität von Stringlisten (LoadFromFile, SaveToFile) zu verwenden.

DeddyH 31. Aug 2011 16:58

AW: Textdatei lesen und Inhalt in neuer abspeichern
 
Kommt darauf an. Wenn ich von einer 1 GB-Textdatei nur 2 Zeilen brauche (z.B. 80 Byte), dann wäre es ja Blödsinn, sie erst komplett in eine Stringliste zu laden.

MutterGans 31. Aug 2011 17:31

AW: Textdatei lesen und Inhalt in neuer abspeichern
 
Dsa ich bei Delphi n absoluter Neuling bin, wäre es nett wenn jemand mir nen Beispiel-Code hier rein stellen könnte!
Wie der Code so ungefähr gegliedert werden muss, welche Variablen ich dazu noch brauche usw.

stahli 31. Aug 2011 17:44

AW: Textdatei lesen und Inhalt in neuer abspeichern
 
Du könntest zwei Memos verwenden.
Mit Memo1.LoadFromFile kannst Du eine Datei laden.
Dann kannst Du per Memo1.Lines[X] bestimmte Zeilen in Memo2.Linies kopieren und dann mit Memo2.SaveToFile den neuen Text speichern.

Das ist ein einfacher Weg, aber für den Anfang m.E. nicht falsch.

mkinzler 31. Aug 2011 17:46

AW: Textdatei lesen und Inhalt in neuer abspeichern
 
Stringlist:
Delphi-Quellcode:
var
 sl: TStrings;
...
begin
    sl := TStringList.Create;
    sl.LoadFromFile( '<Quelldatei>');
    ...
    sl.SaveToFile( 'Zieldatei>');
   ...
end;
I/O Routinen:
Delphi-Quellcode:
var
  tfQuelle, tfZiel: TextFile;
  s: string;
...
begin
    AssignFile( tfQuelle, '<Quelldatei>');
    AssignFile( tfZiel, '<Zieldatei>');
    Reset( tfQuelle); //Öffnet zum Lesen
    Rewrite( tfZiel); //Öffnet zum Schreiben
    s := Readln( tf); //Liest eine Zeile ein
    Writeln (tfZiel, s); //Schreibt eine Zeile
    ...
    CloseFile( tfZiel);
    CloseFile( tgQuelle);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:31 Uhr.
Seite 1 von 2  1 2   

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