Pliki binarne
Wczytywanie i zapisywanie w plikach binarnych odbywa siê za pomoc± instrukcji BlockRead, BlockWrite. Jest to bardzo szybka metoda zapisu i odczytu. Najlepiej zobaczyæ prosty przyk³ad w pomocy pascala, który kopiuje plik podany jako parametr programu na miejsce podane drugim parametrem
{Blockrd.PAS}
{Sample code for the BlockRead and BlockWrite procedures.}
program CopyFile;
{ Simple, fast file copy program with NO error-checking }
{ For Windows: }
{ uses WinCrt; }
var
FromF, ToF: file; {uchwyty do plikow}
NumRead, NumWritten: Word;
Buf: array[1..2048] of Char; {bufor, do ktorego beda trafialy wczytane dane z pliku pierwszego}
begin
Assign(FromF, ParamStr(1)); { Otwiera plik podany przez pierwszy parametr }
Reset(FromF, 1);
Assign(ToF, ParamStr(2)); { Przygotowuje do zapisu drugi plik }
Rewrite(ToF, 1); { Record size = 1 }
Writeln('Copying ', FileSize(FromF), ' bytes...');
repeat
BlockRead(FromF, Buf, SizeOf(Buf), NumRead); {odczytywanie bloku o rozmiarze 2KB (NumRead teraz okresla rozmiar)}
BlockWrite(ToF, Buf, NumRead, NumWritten); {zapisywanie odczytanego bloku}
until (NumRead = 0) or (NumWritten <> NumRead); {kopiowanie do momentu skopiowania calego pliku lub gdy wystapi blad}
Close(FromF); {Zamykanie plikow}
Close(ToF);
end.
Ten program nie zadzia³a tak od razu. Trzeba podaæ mu 2 parametry, które bêd± oznacza³y 2 pliki. Pierwszym musi byæ plik, który rzeczywi¶cie istnieje na dysku. Drugi parametr to plik tworzony. Jak wpisaæ te parametry? W menu Turbo Pascala wybierz Run->Parameters I wpisz np. C:plik.txt C:Kopia.txt.
Teraz utwórz na dysku C: plik o nazwie plik.txt i wpisz do niego jak±¶ zawarto¶æ. Gdy uruchomisz program, zobaczysz, ¿e na dysku powsta³ drugi plik o nazwie Kopia.txt, w dodatku z tak± sam± zawarto¶ci± jak plik.txt.
Warto zwróciæ uwagê na pewn± funkcjê w podanym przyk³adzie. Chodzi o FileSize. Funkcja FileSize zwraca rozmiar pliku, którego kojarzymy ze zmienn± typu File.