Kopia wikimirror

To jest mirror wiki z pascal.chat. Edycja, historia i logowanie są tam.

binary file/pl

Deutsch · English · Polski

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:

pascal
 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

pascal
 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

pascal
 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.

pascal
 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.

pascal
 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

pascal
 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


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.

Wersja 2, ostatnia zmiana: WikiArchive, .