binary file/pl
│
Deutsch (de) │
English (en) │
polski (pl) │
Plik binarny
Plik binarny nadaje się do przetwarzania plików o dowolnym rozmiarze. W przypadku plików binarnych zawartość pliku jest odczytywana znak po znaku. I odwrotnie, plik zapisywany jest także znak po znaku. Jeśli plik jest otwierany jako plik binarny, pojedynczy bajt lub znak można zmienić w dowolnym miejscu pliku. Dane tego samego typu można teraz zapisywać i wczytywać do pliku zdefiniowanego za pomocą opcji FILE OF w następujący sposób:
var
datFile : File of Byte; // zawsze odczytuje i zapisuje pojedynczy bajt/znak
datFile : File of Char; // zawsze odczytuje i zapisuje pojedynczy znak
datFile : File of Integer; // zawsze odczytuje i zapisuje 2 bajty/znaki
...
Dostęp do dowolnej lokalizacji w pliku binarnym można uzyskać za pomocą polecenia SEEK.
Tworzenie pliku
var
datFile : File of Char;
chrContent : Char;
begin
Assignfile(datFile, 'przykladowy.txt'); // Przypisuje nazwę pliku do zmiennej txtFile i otwiera plik
ReWrite(datFile); // Plik zostanie nadpisany, jeśli istnieje
chrContent := 'A';
Write(datFile, chrContent); // Wpisz pierwszy znak do nowego pliku
...
end;
Zamknięcie pliku
var
datFile : File of Char;
chrContent : Char;
begin
...
CloseFile(datFile); // zamyka plik
end;
Dodanie znaku na końcu istniejącego pliku
W przypadku plików binarnych znak można dodać na końcu pliku za pomocą polecenia Seek.
var
datFile : File of char;
chrContent : Char;
begin
AssignFile(datFile, 'przykladowy.txt');
Reset(datFile); // Ustawia wskaźnik pliku na początku pliku
Seek(datFile, FileSize(datFile)); // Określa koniec pliku i ustawia wskaźnik pliku na jego koniec
chrContent := 'b';
Write(datFile, chrContent); // Zapisuje kolejny znak na końcu pliku
...
Zmiana znaku w istniejącym pliku
W przypadku plików binarnych możesz użyć polecenia Seek, aby zastąpić znak w dowolnym miejscu pliku.
var
datFile : File of Char;
chrContent : Char;
begin
AssignFile(datFile, 'przykladowy.txt');
Reset(datFile); // Ustawia wskaźnik pliku na początku pliku
Seek (datFile, 1); // Ustawia wskaźnik pliku na _drugi_ znak w pliku
chrContent := 'f';
Write(datFile, chrContent); // Zastępuje drugi znak w pliku nowym znakiem
...
Czytanie całego pliku
var
datFile : File of Char;
chrContent : Char;
begin
AssignFile(datFile, 'przykladowy.txt');
Reset(datFile);
while not eof(datFile) // czytaj dalej, dopóki są dane do odczytania
do begin
read(datFile, chrContent); // odczytuje pojedynczy znak do zmiennej chrContent
...
end;
CloseFile(datFile);
end;