typed files/de
From Lazarus wiki
Revision as of 18:09, 24 October 2012 by Olaf (talk | contribs) (→Zeiger auf Datensatz positionieren)
│
Deutsch (de) │
English (en) │
polski (pl) │
Zurück zu den Dateitypen.
typisierte Datei
Die typisierte Textdatei eignet für die Verarbeitung von Dateien jeder Grösse.
Eine typisierte Textdatei Datei besteht aus einzelnen Datensätzen. Alle Datensätze in der Datei haben die gleiche Struktur das heisst, dass jeder Datensatz gleich lang ist.
Festlegen der Struktur für Datei und Datensatz
Die Struktur gilt für den Dateityp und den Datensatztyp. Datei und Datensatz müssen die gleiche Struktur haben.
type
TMitarbeiter = record
strName : string[20];
sinGehalt : single;
end;
Ersellen der Datei
var
datDatei: File of TMitarbeiter;
recDatensatz: TMitarbeiter;
begin
AssignFile(datDatei, 'D:\beispiel.txt');
ReWrite(datDatei); // Erstellt die neue Datei
// Eine bereits vorhandene Datei wird dabei gelöscht und neu erstellt
...
end;
Schliesssen der Datei
begin
...
Close(datDatei); // Schliesst die Datei
...
end;
Datensatz schreiben
var
datDatei: File of TMitarbeiter;
recDatensatz: TMitarbeiter;
begin
...
// Datensatz füllen
recDatensatz.strName := 'abcdefghij';
recDatensatz.sinGehalt := 1700.21;
Write(datDatei, recDatensatz); // Schreibt den Datensatz in die Datei
...
end;
Datensatz lesen
var
datDatei: File of TMitarbeiter;
recDatensatz: TMitarbeiter;
begin
AssignFile(datDatei, 'D:\beispiel.txt');
Reset(datDatei); // Setzt den Dateizeiger auf den Anfang der Datei
Read(datDatei, recDatensatz); // Liest den Datensatz aus der Datei
...
end;
Datei komplett lesen
var
datDatei: File of TMitarbeiter;
recDatensatz: TMitarbeiter;
begin
AssignFile(datDatei, 'D:\beispiel.txt');
Reset(datDatei);
while not eof(datDatei) //solange noch Daten zu lesen sind
do begin
read(datDatei,recDatensatz);
end;
CloseFile(datDatei);
end;
Zeiger auf Datensatz positionieren
begin
AssignFile(datDatei, 'D:\beispiel.txt');
Reset(datDatei);
...
Seek(datDatei,0);
Read(datDatei, recDatensatz);
recDatensatz.sinGehalt :=1602.22;
Write(datDatei, recDatensatz);
...
end;
--Olaf 16:09, 24 October 2012 (UTC)