untyped files/pl
From Lazarus wiki
Jump to navigationJump to search
│
Deutsch (de) │
English (en) │
polski (pl) │
Pliki tekstowe nietypowane
Plik tekstowy nietypowany
Nietypowany plik tekstowy nadaje się do przetwarzania plików o dowolnym rozmiarze. W przypadku plików bez typu, zawartość pliku jest odczytywana wiersz po wierszu. I odwrotnie, plik jest zapisywany wiersz po wierszu. Rekordy danych w pliku bez typu mogą mieć różną długość.
Tworzenie pliku
var
datFile : TextFile; // lub: datFile: text
strName : String;
sinContent : Single;
begin
Assign(datFile, 'example.txt'); // Przypisuje nazwę pliku do zmiennej datFile i otwiera plik
ReWrite(datFile); // Stary plik zostanie nadpisany
strName := 'qwert';
sinContent := 1800.23;
WriteLn(datFile, strName, sinContent); // Zapisuje pierwszy rekord do nowego pliku
...
end;
W trybie kompilatora OBJPFC lub DELPHI oprócz Assign dostępna jest procedura AssignFile, aby uniknąć pomyłek z TPersistent.Assign.
Otwieranie pliku
var
datFile : TextFile;
strName : String;
sinContent : Single;
begin
Assign(datFile, 'example.txt'); // Przypisuje nazwę pliku do zmiennej datFile
Reset(datFile); // Ustawia wskaźnik pliku na początek pliku
ReadLn(datFile, strName, sinContent); // Odczytuje pierwszą linię z pliku
ReadLn(datFile, strName, sinContent); // Odczytuje drugą linię z pliku
...
end;
Zamykanie pliku
var
datFile : TextFile;
strName : String;
sinContent : Single;
begin
...
Close(datFile); // zamyka plik
end;
Podobnie jak dla AssignFile / Assign, w trybie kompilatora OBJPFC lub DELPHI dostępna jest także procedura CloseFile.
Dołącz rekord do istniejącego pliku
W przypadku plików tekstowych (plików bez typu) rekord danych można dodać na końcu pliku za pomocą polecenia Append.
var
datFile : TextFile;
strName : String;
sinContent : Single;
begin
Assign(datFile, 'example.txt'); // Przypisuje nazwę pliku do zmiennej datFile
Append(datFile); // Otwiera plik z dostępem do zapisu i dodaje rekordy na końcu pliku
strName := 'sdf' ;
sinContent : = 2001.21 ;
WriteLn(datFile, strName, sinContent); // Zapisuje kolejny rekord do nowego pliku
Close(datFile); // Zamyka plik
Odczytanie całego pliku
var
datFile : TextFile;
strName : String;
sinContent : Single;
begin
Assign(datFile, 'example.txt');
Reset(datFile);
while not eof(datFile) // Wykonuj w pętli, dopóki dane można jeszcze odczytać
do begin
read(datFile, strName, sinContent); // Odczytuje zawartość pliku
end;
Close(datFile);
end;