binary file/pl

From Free Pascal wiki
Jump to navigationJump to search

Deutsch (de) English (en) polski (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

Typy plików