typed files/pl
From Free Pascal wiki
Jump to navigationJump to search
│
Deutsch (de) │
English (en) │
polski (pl) │
Pliki typowane
Plik typowany
A typed text file is suitable for processing files of any size. A typed text file consists of individual data records. All records in the file have the same structure. This means that each data record is of the same length.
Typowany plik tekstowy nadaje się do przetwarzania plików o dowolnym rozmiarze. Typowany plik tekstowy składa się z pojedynczych rekordów danych. Wszystkie rekordy w pliku mają taką samą strukturę. Oznacza to, że każdy rekord danych ma tę samą długość.
Zdefiniuj plik i strukturę rekordu
Struktura zależy od typu pliku i typu rekordu. Plik i rekord danych muszą mieć taką samą strukturę.
type
TMemployee = Record
strName : String[20];
sinContent : Single;
end;
Tworzenie pliku
var
datFile : File of TMemployee;
recData : TMemployee;
begin
AssignFile(datFile, 'example.txt');
// Istniejący plik jest usuwany i ponownie tworzony
ReWrite(datFile);
...
end;
Zamknięcie pliku
begin
...
Close(datFile); // zamyka plik
...
end;
Zapisywanie rekordu danych
var
datFile : File of TMemployee;
recData : TMemployee;
begin
...
// wypełnij rekord danymi
recData.strName := 'abcdefghij';
recData.sinContent := 1700.21;
// zapisz rekord do pliku
Write(datFile, recData);
...
end;
Odczytywanie rekordu danych
var
datFile : File of TMemployee;
recData : TMemployee;
begin
AssignFile(datFile, 'example.txt');
Reset(datFile); // Ustaw wskaźnik pliku na początku pliku
Read(datFile, recData); // Czyta rekord z pliku
...
end;
Odczytanie pliku w całości
var
datFile : File of TMemployee;
recData : TMemployee;
begin
AssignFile(datFile, 'example.txt');
Reset (datFile);
while not eof(datFile) // wykonuj tak długo, dopóki dane mogą być odczytywane
do begin
read(datFile, recData); // odczytaj rekord z pliku
...
end;
CloseFile (datFile);
end;
Modyfikacja wybranego rekordu danych
begin
AssignFile(datFile, 'example.txt');
Reset(datFile);
...
Seek(datFile, 0); // ustawia wskaźnik pliku na początku pliku, czyli na pierwszym rekordzie
Read(datFile, recData); // wczytaj pierwszy rekord do zmiennej recData
recData.sinContent := 1602.22; // aktualizuje rekord
Seek(datFile, 0); // ustawia wskaźnik pliku na pierwszym rekordzie
Write(datFile, recData); // Zapisz pierwszy rekord
...
end;