binary file/pl
Plik binarny
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;Zobacz także
From the Free Pascal wiki, page "binary file/pl", as it stood on 2022-01-28 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.