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í:
Deprecated: Assigning the return value of new by reference is deprecated in /DISK2/WWW/lokiware.info/mff/formatters/highlight/pascal.php on line 5
Read([odkud,] co [, ...]); ReadLn([odkud,] co [, ...]); Write([kam,] co [, ...]); WriteLn([kam,] co [, ...]); Eof(soubor); 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.
Deprecated: Assigning the return value of new by reference is deprecated in /DISK2/WWW/lokiware.info/mff/formatters/highlight/pascal.php on line 5
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. } ===Příklad=== { 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.