Deprecated: Function set_magic_quotes_runtime() is deprecated in /DISK2/WWW/lokiware.info/mff/wakka.php on line 35
V Pascalu se se soubory pracuje především pomocí těchto procedur a funkcí:
Read([odkud,] co [, ...]); ReadLn([odkud,] co [, ...]);
Write([kam,] co [, ...]); WriteLn([kam,] co [, ...]);
Eof(soubor); {fce, vrací boolean}
Assign(soubor, jméno); Reset(soubor); Rewrite(soubor); Append(soubor); Close(soubor);Parametry procedur Write a WriteLn je možno opentlit formátovacími parametry dle vzoru parametr [: šířka [: desetinnámísta]], kde [, ] označuje volitelnost. Například pro zarovnání nanejvýše pětimístného čísla napravo použijeme tedy WriteLn(n : 5).
Následující zdroják zcela nepokrývá obsah přednášky (26. 10. 2006, na které jsem ostatně nebyl), ale stejně může někomu být užitečný, protože v Holanových zdrojácích z této přednášky není skoro nic.
program Soubory(input, output);
{ (input, output) nema v Borland Pascalu vliv, mely by to byt deskriptory vstupu a vystupu, ktere se programu
predaji jako paramatry, standardne to tam, pokud vim ma byt napsane, to jen kdyz uz jsme u tech souboru. }
{ Promenne typu file rikam pro zjednoduseni deskriptor, i kdyz v Pascalu se to asi nerika... }
var
fd : file of longint; { file of nejaky typ, treba i record}
{ Kdybych chtel pracovat s textovym souborem a zapisovat do nej treba pomoci
WriteLn, pouzil bych fd : text, file of neco je skutecne soubor se stavajici z
sekvence pametovych reprezentaci dat daneho typu, je tedy zavisly na poradi bytu, velikosti typu,
zarovnani atp. }
num : longint;
begin
assign(fd, 'num.tmp'); { tim priradim deskriptoru jmeno souboru }
rewrite(fd); { timhle rikam neco jako priprav deskriptor ke psani }
write(fd, 42);
write(fd, 666);
write(fd, $DEAD);
write(fd, $BEEF);
close(fd); { zavru soubor, takhle se vyprazdni buffery, uvolni struktury atd. }
reset(fd); { "priprav soubor ke cteni" }
while not eof(fd) do { kontroluju, zda jsem nedorazil na konec souboru }
begin
read(fd, num); { vsimnete si, ze na rozdil od cteni ze standardniho vstupu, je prvnim parametrem deskriptor }
writeln('Read: ', num : 8);
end;
close(fd); { Tohle je zbytecne, protoze jsem jen cetl, a program ted skonci, ale je to tak "hezci".}
end.