Deprecated: Function set_magic_quotes_runtime() is deprecated in /DISK2/WWW/lokiware.info/mff/wakka.php on line 35 Matfiz : Soubory V Pascalu
Přihlášení:  Heslo:  
Matfiz: SouboryVPascalu ...
Hlavní Stránka | Seznam Stránek | Poslední Změny | Poslední Komentované | Uživatelé | Registrace |

Soubory v Pascalu


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);

Formátování výstupu


Parametry procedur WriteWriteLn 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).

Příklad


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.


 
Soubory [Skrýt soubory (formulář)]
Na stránce nejsou žádné komentáře. [Zobrazit komentáře (formulář)]