Assign

Z Delphi & Pascal (česká wiki)
Skočit na navigaci Skočit na vyhledávání

Přiřadí jméno vnějšího souboru proměnné typu soubor.

Deklarace
procedure Assign(var f; Name);
Režim
Windows, Reálný, Chráněný
Poznámky
F je proměnná kteréhokoli typu soubor a Name je výraz typu string nebo výraz typu PChar, je-li povolená rozšířená syntaxe. Všechny další operace s F budou probíhat na vnějším souboru jménem Name.


Po zavolání procedury Assign spojení proměnné F a vnějšího souboru Name trvá až do dalšího volání Assign s parametrem F.


Jméno souboru tvoří cesta, složená z nula nebo více jmen adresářů, oddělených obráceným lomítkem, a vlastní jméno souboru:
Disk:\JménoAdresáře\...\JménoAdresáře\JménoSouboru


Pokud cesta začíná obráceným lomítkem, začíná v hlavním adresáři (root), jinak začíná v aktuálním adresáři.


Disk je identifikátor disku (A..Z). Pokud není Disk s dvojtečkou uveden, použije se aktuální disk.


\JménoAdresáře\...\JménoAdresáře je cesta začínající v hlavním adresáři a pokračující přes vyjmenované podadresáře až k jménu souboru. JménoSouboru se skládá z jednoho až osmi znaků, nepovinně následovných tečkou a maximálně tříznakovou příponou. Maximální délka celého jména souboru je 79 znaků.


Zvláštní případ nastane, je-li Name prázdný řetězec (' '); tj. je-li Length (Name) nula. V takovém případě se F sdruží se standardním vstupním nebo standardním výstupním souborem. Tyto speciální soubory umožňují programu využívat možnosti přesměrování I/O operačního systému DOS.


Je-li F přiřazeno prázdné jméno, po zavolání Reset (F) bude F odkazovat na standardní vstupní soubor a po zavolání Rewrite (F) bude F odkazovat na standardní výstupní soubor.
Omezení
Nesmíte aplikovat na otevřený soubor.
Viz také
Append
Close
Reset
Rewrite


Vzorový příklad

{Assign.PAS}
{Vzorový příklad pro proceduru Assign. Pokuste se přesměrovat tento program z DOSu na PRN, do diskového souboru, atd.}

{ Pro Windows: }
{ uses WinCrt; }
var F: Text;
begin
  Assign(F, );                { Standardní výstup }
  Rewrite(F);
  Writeln(F, 'standard output...');
  Close(F);
end.