Verwalten von Ascii (Text) -Dateien aus Delphi-Code

Einfach ausgedrückt, Textdateien enthalten lesbare ASCII Zeichen. Wir können uns vorstellen, mit einer Textdatei in Delphi analog zum Abspielen oder Aufzeichnen von Informationen auf einem Videorecorder zu arbeiten.

Obwohl es möglich ist, Änderungen an einer Textdatei vorzunehmen, springen Sie bei der Verarbeitung von Informationen herum oder fügen Sie der Datei andere Daten als hinzu Am Ende ist es ratsam, eine Textdatei nur dann zu verwenden, wenn wir wissen, dass wir mit normalem Text arbeiten und keine solchen Operationen durchführen notwendig.

Textdateien stellen eine Folge von Zeichen dar, die in Zeilen formatiert sind, wobei jede Zeile durch eine Zeilenende-Markierung abgeschlossen wird (a CR / LF-Kombination).

Die Textdatei und die Zuweisungsmethode

Um mit Textdateien arbeiten zu können, müssen Sie eine Datei auf einer Festplatte mit einer Dateivariablen in Ihrem Code verknüpfen - deklarieren eine Variable vom Typ TextFile und verwenden Sie die AssignFile-Prozedur, um eine Datei auf einer Festplatte mit einer Datei zu verknüpfen Variable.

instagram viewer

Lesen von Informationen aus einer Textdatei

Wenn wir den Inhalt einer Datei in eine Zeichenfolgenliste zurücklesen möchten, erledigt nur eine Codezeile die Aufgabe.

Um Informationen aus einer Datei Zeile für Zeile zu lesen, müssen wir die Datei für öffnen Eingang mit dem Zurücksetzen Verfahren. Sobald eine Datei zurückgesetzt wurde, können wir verwenden ReadLn Informationen aus einer Datei lesen (liest eine Textzeile aus einer Datei und wechselt dann zur nächsten Zeile):

Nach dem Hinzufügen einer Textzeile aus einer Datei zu einer Memokomponente muss SomeTxtFile geschlossen werden. Dies geschieht durch die Schließen Stichwort.

Wir können auch die Leseprozedur verwenden, um Informationen aus einer Datei zu lesen. Lesen funktioniert genau wie ReadLn, außer dass der Zeiger nicht in die nächste Zeile verschoben wird.

EOF - Dateiende

Verwenden Sie die EOF-Funktion, um sicherzustellen, dass Sie nicht versuchen, über das Ende der Datei hinaus zu lesen. Angenommen, wir möchten den Inhalt der Datei zeilenweise in Meldungsfeldern anzeigen, bis das Ende einer Datei erreicht ist:

Hinweis: Es ist besser zu verwenden While-Schleife als die Bis-Schleife, um die (unwahrscheinliche) Möglichkeit zu berücksichtigen, dass die Datei existiert, aber keine Daten enthält.

Schreiben von Text in eine Datei

Das WriteLn Dies ist wahrscheinlich die häufigste Methode, um einzelne Informationen an eine Datei zu senden. Der folgende Code liest einen Text aus einer Memo1-Komponente (Zeile für Zeile) und sendet ihn an eine neu erstellte Textdatei.

Abhängig vom Status der Datei, die für die Rewrite-Prozedur bereitgestellt wird, wird eine neue Datei mit dem Namen SomeTextFile erstellt (öffnet die Datei zur Ausgabe). Wenn bereits eine gleichnamige Datei vorhanden ist, wird diese gelöscht und an ihrer Stelle eine neue leere Datei erstellt. Wenn SomeTextFile bereits geöffnet ist, wird es zuerst geschlossen und dann neu erstellt. Die aktuelle Dateiposition wird auf den Anfang der leeren Datei gesetzt.

Hinweis: Memo1.Lines. SaveToFile ('c: \ MyTextFile.txt') macht dasselbe.

Manchmal müssen wir nur einige Textdaten am Ende einer vorhandenen Datei hinzufügen. In diesem Fall rufen wir an Anhängen um sicherzustellen, dass eine Datei mit Schreibzugriff geöffnet wird, wobei sich der Dateizeiger am Ende der Datei befindet. Etwas wie:

Achten Sie auf Ausnahmen

Im Allgemeinen sollten Sie immer verwenden Ausnahmebehandlung bei der Arbeit mit Dateien. I / O steckt voller Überraschungen. Verwenden Sie CloseFile immer in einem finally-Block, um die Möglichkeit einer Beschädigung der FAT eines Benutzers zu vermeiden. Alle vorherigen Beispiele sollten wie folgt umgeschrieben werden:

Bearbeiten mit strukturierten Dateien

Delphi kann sowohl ASCII-Dateien als auch Dateien mit Binärdaten verarbeiten. Hier sind die Techniken zum Arbeiten typisierte und untypisierte (binäre) Dateien.