home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 July / Chip_2001-07_cd1.bin / ctenari / Cerny / INSTALLF.EXE / rar / FREETFB / DOC / PRIKAZY.DOC < prev    next >
Text File  |  2001-05-14  |  54KB  |  1,194 lines

  1. ~16|0|05 Klíƒová slova, p²íkazy a operátory
  2. ~16|0|05         v Turbo Fast Building PRO256
  3.  
  4.  |1|05 1.1  ü //NAZEV//        |0|12(dv╪ pravá lomítka)
  5.     Uvádí se na zaƒátku kaºdého zdrojového textu a oznaƒuje název
  6.  programu. Název programu nemusí b∞t shodn∞ s názvem diskového souboru ve
  7.  ve kterém je program uloºen.
  8.  P²íklad:
  9.           |1|09//|1|12MujProgram|1|09//  |0|12(dv╪ pravá lomítka)
  10.  Soubor màºeme uloºit t²eba pod názvem "main.fbs" (po kompilaci MAIN.EXE)
  11.  
  12.  |1|05 1.2  ü \\NAZEV\\        |0|12(dv╪ levá lomítka)
  13.     Uvádí se na zaƒátku kaºdého zdrojového textu a oznaƒuje název
  14.  jednotky .FBL. Název jednotky za tímto klíƒov∞m slovem musí b∞t shodn∞
  15.  s názvem diskového souboru, ve kterém je jednotka uloºena.
  16.  P²íklad:
  17.           |1|09\\|1|12Adresy|1|09\\
  18.  Soubor musí mít stejné jméno "ADRESY.FBS" (po kompilaci ADRESY.FBL)
  19.  
  20.  |1|05 1.3  ü ==
  21.     Symbol pro logické p²i²azení obsahu prom╪nn∞ch.
  22.  P²íklad: 
  23.           |1|12A |1|09== |1|12b;            
  24.           |1|12Ret |1|09== |1|12'Karel';   
  25.           a pod.
  26.  Pamatujte, ºe dvojité rovnítko == p²i²azuje hodnotu prom╪nn∞ch, kdeºto
  27.  jednoduché rovnítko = potvrzuje, skuteƒnou hodnotu v prom╪nné. Nesmí proto
  28.  dojít k zám╪n╪. Pi²azování hodnot prom╪nn∞m lze vτak provést p²ehledn╪ji
  29.  jeτt╪ dalτím klíƒov∞m slovem let, dále v sekveci :let> nebo pomocí slova
  30.  if V∞raz let .....;
  31.  - viz kap.L. odst.1,2 a 3.
  32.  
  33.  |1|05 1.4  ü :>  |0|12(dvouteƒka s pravou lomenou závorkou)
  34.     Tento symbol oznaƒuje zaƒátek procedury nebo funkce. Za symbol je
  35.  moºné vloºit struƒnou poznámku, která nesmí obsahovat mezery a musí b∞t
  36.  ukonƒena znakem > za kter∞ se jiº neuvádí st²edník.
  37.  P²íklad:
  38.        |0|09Main Secti(x,y:integer);
  39.        |1|09:>|0|09proc>
  40.        |0|09  if x < 10 part
  41.        |0|09    let x : 10;
  42.        |0|09  :if<x<
  43.        |0|09:<proc<
  44.  
  45.  |1|05 1.5  ü :<  |0|12(dvouteƒka s levou lomenou závorkou)
  46.     Tento symbol oznaƒuje konec procedury nebo funkce. Za symbol je
  47.  moºné vloºit struƒnou poznámku, která nesmí obsahovat mezery a musí b∞t
  48.  ukonƒena znakem < za kter∞ se jiº neuvádí st²edník.
  49.  
  50.  P²íklad:  
  51.        |0|09Main Secti(x,y:integer);
  52.        |0|09:>proc>
  53.        |0|09  if x < 10 part
  54.        |0|09    let x : 10;                 
  55.        |0|09  :if<x<
  56.        |1|09:<|0|09proc<
  57.  
  58.  |1|05 1.6  ü @náv╪τtí<   |0|12(@ zavináƒ)
  59.     Znak "zavináƒ" slouºí pro oznaƒení definovaného náv╪τtí. Uvádí se
  60.  p²ed jménem náv╪τtí, za které se uvede levá lomená závorka.
  61.  
  62.  |1|05 1.7  ü &   |0|09(& znak pro AND)
  63.     Operátor se pouºívá p²edevτím u klíƒového slova |1|12if|0|12, kde je t²eba
  64.  urƒit více podmínek, které platí souƒasn╪.
  65.  P²íklad:
  66.    |0|09if (a<b) |1|09& |0|09(d>e) next 
  67.    nebo |0|09if (a<b) |1|09& |0|09(d>e) part
  68.       v tomto p²ípad╪ je podmínkou, ºe -a- je menτí neº -b- a souƒasn╪
  69.       -d- je vetτí neº -e-.
  70.  
  71.  |1|05 1.8  ü ÷   |0|12(÷ znak pro OR)
  72.     Operátor se pouºívá p²edevτím u klíƒového slova |1|12if|0|12, kde je t²eba
  73.  urƒit více podmínek, u kter∞ch je povoleno více moºností souƒasn╪.
  74.  P²íklad:
  75.    |0|09if (a<b) |1|09÷ |0|09(d>e) next 
  76.    nebo |0|09if (a<b) |1|09÷ |0|09(d>e) part
  77.       v tomto p²ípad╪ je podmínkou, ºe -a- je menτí neº -b- a nebo
  78.       -d- je v╪tτí neº -e-.
  79.  
  80.  |1|05 1.9  ü !!   |0|12(!! znaky pro NOT)
  81.     Operátor se pouºívá p²edevτím u klíƒového slova |1|12if|0|12, kde se zjiτ£uje
  82.  hodnota typu boolean (pravda=True a nepravda = False).
  83.  V tomto p²ípad╪ se zjiτ£uje, zda hodnota typu boolean je False, nebo
  84.  jinak NOT.
  85.  P²íklad:
  86.       |0|09if |1|09!!|0|09Maska next ...   |0|12je-li Maska = False
  87.       |0|09if |1|09!!|0|09Maska part
  88.       v tomto p²ípad╪ je zjiτ£uje, zda hodnota booleanovské prom╪nné
  89.       Maska je záporná (NOT), tedy False;
  90.       Pro zjiτt╪ní, zda je True se !! neuvedou.
  91.  
  92.  |1|05 1.11  ü |0|05~  |0|12(znak pro rozvinou variaci)
  93.     Pouºívá se za p²eddefinovan∞m ordinálním, logick∞m nebo vlastním
  94.  typem po klíƒovém slovu variable.
  95.  
  96.  |1|05 1.12  ü <>, >, <
  97.     Lomené závorky uzavírají instrukce u p²íkazà #include a #call.
  98.     |0|09#include |1|09<|0|09soubor|1|09>
  99.     |0|09#call |1|09<|0|09soubor.obj|1|09>
  100.  Lomená závorka vpravo se vyskytuje u skevenƒních slov, která oznaƒují
  101.  zaƒátek sekvence. Uvád╪jí se v kombinaci se znakem dvouteƒky :
  102.    |0|09:let>      |0|12zaƒátek sekvence p²i²azování hodnot prom╪nn∞m
  103.    |0|09:loop>     |0|12zaƒátek podmín╪né sekvence
  104.    |0|09:otherdo>  |0|12zaƒátek pokraƒující sekvence s dalτím moºn∞m ²eτením
  105.  
  106.  Lomená závorka vlevo se vyskytuje u skevenƒních slov, která oznaƒují
  107.  konec sekvence. Uvád╪jí se v kombinaci se znakem dvouteƒky :
  108.    |0|09:let<      |0|12konec sekvence p²i²azování hodnot prom╪nn∞m
  109.    |0|09:loop< ... |0|12konec podmín╪né sekvence
  110.    |0|09:otheron<  |0|12konec sekvence s následn∞m moºn∞m ²eτením
  111.    |0|09:other<    |0|12konec následné sekvence
  112.    |0|09:case<     |0|12konec cyklu CASE zahájeného slovem part
  113.    |0|09:for<      |0|12konec urƒené sekvence FOR zahájené slovem part
  114.    |0|09:if<       |0|12konec sekvence po IF zahájené slovem part
  115.    |0|09:with<     |0|12konec cyklu WITH zahájeného slovem part
  116.    |0|09:while<    |0|12konec cyklu WHILE zahájeného slovem part
  117.  
  118.  |1|05 1.13  ü |0|05#
  119.     Identifikátor se uvádí p²ed p²íkazem #include a #unit.
  120.  
  121.  |1|05 1.14  ü []
  122.     Hranaté závorky uzavírají popis deklarovaného pole nebo popisku pole.
  123.  
  124.  |1|05 1.15  ü / a \
  125.     Pravé lomítko se pouºívá u klíƒového slova FOR pro oznaƒení sm╪ru
  126.  stoupání cyklu od menτí hodnoty k vyττí:
  127.     |0|09for n,1|1|09/|1|0910  |0|12cyklus stoupá od 1 do 10
  128.     Dále se pravé lomítko pouºívá u slov pro práci se soubory, pokud
  129.  jsou neurƒeného typu:
  130.     |0|09OpenF(f|1|09/|0|091,SOUBOR);
  131.     |0|09CreateF(f|1|09/|0|091,SOUBOR);
  132.     |0|09OpenF(f|1|09/|0|091,SOUBOR);
  133.     Pouºívá se rovn╪º u slov DefVal a Declare pro urƒení typu:
  134.     |0|09DefVal Jmeno:N|1|09/|0|09typ) .....
  135.     |0|09Declare : Pole[h1-h2|1|09/|0|09typ .....
  136.  
  137.     Levé lomítko se pouºívá u klíƒového slova FOR pro oznaƒení sm╪ru
  138.  stoupání cyklu od vyττí hodnoty k niºτí:
  139.     |0|09for n,10|1|09\|0|091  |0|12cyklus klesá od 10 do 1
  140.     
  141.  
  142. ~16|1|05  A
  143.  
  144.  |1|05 A.1  ü AppendF@errlab(f,'text.txt');
  145.  |1|05        AppendF(f,'text.txt');
  146.     P²i²adí jméno externího textového jiº existujícího souboru na disku
  147.  a otevírá ho pro p²idání dat na jeho konec. Podmínkou je, aby diskov∞
  148.  soubor skuteƒn╪ existoval. Pokud tomu tak není, operace nebude provedena,
  149.  V p²ípad╪, ºe za slovo AppendF@ uvedete jméno náv╪τtí, od kterého má
  150.  program pokraƒovat v p²ípad╪ chyby, vypíτe se informaƒní okno s popisem
  151.  a ƒíslem chyby, a program bude pokraƒovat od definovaného náv╪τtí.
  152.  Pokud je soubor jiº otev²en∞, nejprve se uzav²e a poté se op╪t otev²e.
  153.  |1|05P²íkaz Assign se v tomto p²ípad╪ p²ed AppendF  n e u v á d í !
  154.  |1|05Neuvádí se ani p²epínaƒ {$I-} a {$I+}, nebo ResOff a ResOn,
  155.  |1|05které jsou jiº souƒástí tohoto p²íkazu. Pokud je za znakem @
  156.  |1|05uvedeno náv╪τtí, bude program pokraƒovat v p²ípad╪ chyby od toho
  157.  |1|05náv╪τtí. Podmínkou vτak je, ºe náv╪τtí je definováno klíƒov∞m
  158.  |1|05slovem DefFrom, a ºe toto náv╪τtí skuteƒn╪ existuje!
  159.  |1|05Musí b∞t za slovem #unit uvedena jednotka IOErrFB.
  160.  
  161. ~16|1|05  B
  162.  
  163.  |1|05 B.1  ü BlockRead@(f, pole, velikost, N);
  164.  |1|05 B.2  ü BlockWrite@(f, pole, velikost, N);
  165.    U souborà bez udaného typu màºeme pouºít místo Read a Write ke
  166.  ƒtení a zápisu dat dv╪ speciální procedury BlockRead a BlockWrite.
  167.  Uvedené procedury pracují s definovan∞m záznamem, jehoº velikost
  168.  byla urƒena p²i otev²ení souboru. Procedura BlockRead naƒítá tedy
  169.  data jako blok urƒené velikosti. Màºe se stát, ºe b╪hem naƒítání
  170.  bloku dojde k neoƒekávané chyb╪, která pak konƒí DOSovsk∞m hláτením
  171.  Error 100 (nebo jiné). Proto TFBPRO nabízí programátorovi klíƒové
  172.  slovo BlockRead@ a BlockWrite@, které zachytí p²ípadnou chybu
  173.  p²i zápisu nebo ƒtení bloku. Pokud je za slovem znak @ a je uvedeno
  174.  jméno náv╪τtí, bude program v p²ípad╪ chyby pokraƒovat od tohoto náv╪τtí.
  175.  |1|05Podmínkou vτak je, ºe za slovem #unit je uvedena jednotka IOErrFB ! 
  176.  P²íklad pouºití:
  177.  |0|09#unit GraphFB, ....., |1|09IOErrFB;
  178.  |0|09Main CopyFile(FileTo,CopyTo:string);
  179.  |0|09variable
  180.  |0|09   file~FromF,ToF;
  181.  |0|09   word~NunRead,NumWriten;
  182.  |0|09   Declare : Buf[1..2048/of char];
  183.  |1|09DefFrom ErrCopy,EndCopy;
  184.  |0|09:>proc>
  185.  |0|09  OpenF@ErrCopy(FromF/1,FileTo);
  186.  |0|12  pokud doτlo k chyb╪ p²i otev²ení souboru jdi na ErrCopy
  187.  |0|09  CreateF@ErrCopy(ToF/1,CopyTo);
  188.  |0|12  pokud doτlo k chyb╪ p²i vytvo²ení souboru jdi na ErrCopy
  189.  |0|09  :loop>
  190.  |1|09     BlockRead@EndCopy(FromF, Buf, SizeOf(Buf), NumRead);
  191.  |0|12     pokud doτlo k chyb╪ p²i ƒtení ze souboru jdi na EndCopy
  192.  |1|09     BlockWrite@EndCopy(ToF, Buf, NumRead, NumWriten);
  193.  |0|12     pokud doτlo k chyb╪ p²i zápisu do souboru jdi na EndCopy
  194.  |0|09  :loop< (NumRead=0) ÷ (NumWriten <> NumRead);
  195.  |1|09  @EndCopy<
  196.  |0|09  Close(FromF);
  197.  |0|09  Close(ToF);
  198.  |1|09  @ErrCopy<
  199.  |0|09:<proc<
  200.  
  201.  
  202. ~16|1|05  C
  203.  
  204.  |1|05 C.1  ü Call <soubor>
  205.     Slouºí pro p²ipojení binárního souboru, kter∞ je v∞stupem p²ekladu
  206.  z asembleru, Turbo C++ a jin∞ch p²ekladaƒà. Direktiva tedy dovoluje
  207.  p²ipojení modulà p²eloºen∞ch z jin∞ch jazykà. Implicitní rozτí²ení je
  208.  .OBJ. Soubor se hledá v aktivním adresá²i a pak v adresá²ích, které
  209.  jsou zadány v konfiguraƒním souboru p²ekladaƒe.
  210.  P²íklad :
  211.           |0|09Main GP_BOX(X1,Y1,X2,Y2:integer); external;
  212.           |1|09Call <GP_BOX.OBJ>
  213.  
  214.  |1|05 C.2 ü Case vyraz part
  215.  |1|05     ü case> ....
  216.  |1|05     ü :case<
  217.     P²íkaz ²eτí v∞b╪r práv╪ jedné z moºností. Skládá se z v∞razu
  218.  (tzv. selektor) a seznamu p²íkazà. Selektor musí b∞t ordinálního
  219.  typu. Typ ²et╪zec a longint jsou nep²ípustné typy selektoru.
  220.  P²íklad:  |1|09Case |1|09Vyraz part
  221.            |1|09  case>|1|091 :>
  222.            |0|09           p²íkaz1;
  223.            |0|09           p²íkaz2;
  224.            |0|09         :<
  225.            |1|09  case>|1|092 p²íkaz
  226.            |0|09          else
  227.            |0|09         p²íkaz;
  228.            |1|09:case<
  229.  Konec této sekvence ukonƒíme klíƒov∞m slovem :case< do kterého màºeme
  230.  vloºit p²ípadnou poznámku, kterou ukonƒíme dalτím znakem < a jiº
  231.  neuvádíme znak st²edníku.
  232.  
  233.  |1|05 C.3  ü CreateF@errlab(f,'soubor.xxx');
  234.  |1|05      ü CreateF@errlab(f/v,'soubor.xxx');
  235.  |1|05      ü CreateF(f,'soubor.xxx');
  236.  |1|05      ü CreateF(f/v,'soubor.xxx');
  237.     P²i²adí jméno nového externího souboru, kter∞ vzáp╪tí vytvo²í a otev²e.
  238.  Pokud soubor tohoto jména a typu jiº existuje, jeho obsah vymaºe. Pokud
  239.  byl soubor jiº otev²en, nejprve se uzav²e, poté se znovu vytvo²í a otev²e.
  240.  Pokud se otev²e textov∞ soubor, je otev²en∞ pouze pro zápis.
  241.     Parametr -v- (velikost) je voliteln∞ a jedná se o v∞raz typu word.
  242.  Definuje velikost bloku u souborà bez udaného typu, u typov∞ch nebo
  243.  textov∞ch souborà se parametr velikost  n e u v á d í .
  244.  V p²ípad╪ znaku @ za slovem, je uvedeno jméno náv╪τtí, od kterého má
  245.  program pokraƒovat v p²ípad╪ chyby, vypíτe se informaƒní okno s popisem
  246.  a ƒíslem chyby, a program bude pokraƒovat od definovaného náv╪τtí.
  247.  |1|09P²íkaz Assign se v tomto p²ípad╪ p²ed CreateF  n e u v á d í !
  248.  |1|09Neuvádí se ani p²epínaƒ {$I-} a {$I+}, nebo ResOff a ResOn,
  249.  |1|09které jsou jiº souƒástí tohoto p²íkazu. Pokud je za slovem znak @
  250.  |1|09a je uvedeno náv╪τtí, bude program pokraƒovat v p²ípad╪ chyby
  251.  |1|09od tohoto náv╪τtí. Podmínkou vτak je, ºe náv╪τtí je definováno
  252.  |1|09klíƒov∞m slovem DefFrom, a ºe toto náv╪τtí skuteƒn╪ existuje!
  253.  |1|09Musí b∞t za slovem #unit uvedena jednotka IOErrFB.
  254.  
  255. ~16|1|05  D
  256.  
  257.  |1|05 D.1 ü Declare : Pole[r1-r2/typ];
  258.  |1|05 D.1 ü Declare : Pole[r1-r2/typ
  259.  |1|05                = (..........)];
  260.     Definuje datové pole uvedeného typu. Urƒuje se rozm╪r pole a typ
  261.  sloºek. Rozm╪r pole (r1 aº r2) urƒuje, kolik prvkà se màºe do pole
  262.  vloºit. Typ sloºky (typ) pole se urƒuje idetifikátorem za lomítko.
  263.  Celá definice musí b∞t uzav²ena do hranat∞ch závorek a ukonƒena
  264.  st²edníkem. Funkci musí p²edcházet ²íkaz variable, var nebo type.
  265.  P²íklad 1: |1|09variable
  266.             |1|09  Declare : Pole[1-50/integer];
  267.             |1|09  Declare : Pole[0-255,0-16/byte];
  268.             |1|09  Declare : Radek[1-20/string[15]];
  269.  
  270.  P²íklad 2: |1|09type
  271.             |1|09  Declare = SPole[1-4096/char];
  272.             |1|09  Declare = ObrType[1-200/^SPole];
  273.     Pokud je deklarace delτí a nebo za urƒen∞m typem pokraƒuje definice
  274.  hodnot v uzav²en∞ch závorkách, je nutné pokraƒovat na dalτím ²ádku nebo
  275.  ²ádcích, je nutné dodrºet deklaraci na prvním rádku základních parametrà
  276.  a na dalτím ²ádku pokraƒovat, p²itom identifikátor = , kter∞m parametry
  277.  pokraƒují smí b∞t aº na tomto dalτím ²ádku.
  278.  P²íklad : |0|09 const 
  279.            |0|09    Declare : Dny[1-7/string[7]
  280.                    |1|09= |0|09('Pond╪lí','Θter∞','St²eda',+
  281.            |0|09        '¼tvrtek','Pátek','Sobota','Ned╪le')];
  282.  nebo
  283.            |0|09 const
  284.            |0|09    Declare : Page[1-25,1-80/record
  285.            |0|09         ch, atr : char
  286.            |0|09         end absolute $B800:$0000];
  287.  teprve na ²ádku s posledním parametrem se uvede ]; hranatá závorka se
  288.  st²edníkem. 
  289.  
  290.  |1|05 D.2 ü DefFrom .....;
  291.    Definici náv╪τtí uvádí klíƒové slovo DefFrom. Náv╪τtí je posloupnost
  292.  ƒíslic v rozsahu 0 aº 9999. Náv╪τtí definuje místo, na které se provádí
  293.  skok p²íkazem From. Proti standartnímu Pascalu p²ipouτtí TFBP pouºívání
  294.  identifikátorà ve funkci náv╪τtí.
  295.  P²íklad:
  296.  |1|09DefForm |1|091, 2, Ven, 3;
  297.  |0|09:>proc>
  298.  |0|09  ....
  299.  |1|09  From 1;
  300.  |0|09  ....
  301.  |1|09  From Ven;
  302.  |0|09  ....
  303.  |1|09  @Ven<
  304.  |0|09  ....
  305.  |1|09  @1<
  306.  |0|09:<proc<
  307.  
  308.  |1|05 D.3 ü DefVal Name:N/typ = (....);
  309.     Klíƒové slovo DefVal uvádí deklaraci konstant v programu. Konstanty
  310.  jsou prvky programu, které v pràb╪hu provád╪ní programu nem╪ní svou
  311.  hodnotu. Za klíƒové slovo DefVal se uvede jméno definované konstanty.
  312.  Na toto jméno se bude odvolávat klíƒové slovo Def(Name,N). Za dvouteƒku
  313.  uvedeme nejprve parametr N, kter∞ urƒuje poƒet deklarovan∞ch hodnot.
  314.  Jako dalτí parametr uveden∞ za lomítko se musí uvést typ konstanty,
  315.  kter∞ màºe b∞t typu integer, word, longint, real, char nebo boolean.
  316.  Hodnoty uvedeného typu uvedeme za rovnítko do závorky a odd╪lujeme je 
  317.  ƒárkou.
  318.  Jejich poƒet musí odpovídat uvedenému parametru N. Celou definici
  319.  ukonƒíme op╪t závorkou a st²edníkem. Toto klíƒové slovo màºe b∞t uvedeno 
  320.  v deklaraƒní ƒásti programu, procedury nebo funkce. Nikdy vτak nesmí b∞t 
  321.  uvedeno uvnit² sekvence!
  322.  P²íklad zadání:
  323.  |1|09DefVal TG:4/integer = (10,80,100,630);
  324.      nebo
  325.  |1|09DefVal OP:15/byte =
  326.  |1|09   (175,212,89,45,247,118,79,25,220,67,156,34,148,198,200);
  327.  
  328.  |1|05 D.4 ü Def(Name,N)
  329.     Toto klíƒové slovo pouºijeme pro vyzvednutí hodnot v definované
  330.  deklaraci konstant. Do závorek uvedeme jméno existující definice a
  331.  poƒet hodnot, které z této definice chceme pouºít. Parametr N vτak
  332.  nesmí b∞t v╪tτí neº skuteƒn∞ poƒet hodnot ani se nesmí rovnat nule.
  333.  Pokud parametr N udává menτí hodnotu, neº je maximální poƒet hodnot
  334.  v definici uvedeného jména, budou vyzvednuty hodnoty od 1 do N.
  335.  Jako p²íklad si uvedeme p²i²azení hodnot pro proceduru OptionalArea,
  336.  u které je nutno uvést: stav,X1,Y1,X2,Y2, sv.stín,tm.stín a barvu
  337.  plochy. Hodnoty deklarujeme jako konstanty do definice oznaƒené
  338.  jménem Area. 
  339.  |1|09  DefVal Area:8/integer = (Active,10,80,100,630,7,8,6);
  340.  proceduru OptionalArea pak màºeme volat takto:
  341.  |1|09  OptionalArea(|1|09Def(Area,8)|1|09);
  342.  místo
  343.  |1|09  OptionalArea(Active,10,80,100,630,7,8,6);
  344.  Pokud si mimo to jeτt╪ definujeme i poslední t²i hodnoty, které se
  345.  b╪hem programu mohou u stejného p²íkazu m╪nit, màºeme uvést kombinaci
  346.  více klíƒov∞ch slov Def(Name,N).
  347.  P²íklad:
  348.  |1|09DefVal Color:3/byte = (11,1,4); |0|12hodnoty pro barvy
  349.  |1|09OptionalArea(|1|09Def(Area,5),Def(Color,3)|1|09);
  350.  Z první definice budou vyzvednuty hodnoty od 1 do 5 a z druhé definice
  351.  od 1 do 3.
  352.  
  353. ~16|1|05  E
  354.  
  355.  |1|05 E.1  ü EndFo
  356.      Oznaƒuje konec hlavní / ²ídící ƒásti programu a souƒasn╪ oznaƒuje
  357.  konec celého programu. Toto klíƒové slovo smí b∞t pouºito pouze jednou
  358.  v celém zdrojovém textu programu.
  359.  P²íklad: |0|09  ......
  360.           |0|09  DisposeFB;
  361.           |1|09EndFo
  362.  
  363. ~16|1|05  F
  364.  
  365.  |1|05 F.A ü FarOn;
  366.  |1|05     ü FarOff;
  367.      Na poƒátku -
  368.   Lokální p²epínaƒ, kter∞ ²ídí model volání podprogramà. Pouºívají se
  369.   dva modely, dalek∞ (FAR = FarOn;) a blízk∞ (NEAR, FarOff;). Procedury
  370.   a funkce p²eloºené s p²epínaƒem FarOn pouºívají dalek∞ model, tj. volají
  371.   se instrukcí CALL FAR.
  372.      Pro blízk∞ model volání se pouºívá pouze adresa ofsetu v daném
  373.   segmentu, pro dalek∞ model volání se ukládá vºdy adresa segmentu
  374.   i ofsetu.
  375.  
  376.  |1|05 F.1 ü For n,ph/kh part
  377.  |1|05     ü For n,kh\ph part
  378.  |1|05     ü :for<
  379.  |1|05     ü For n,ph/kh next ....;
  380.  |1|05     ü For n,kh\ph next ....;
  381.  |1|05     ü For n,kh/ph let ....;
  382.  |1|05     ü For n,kh/ph if ... next ...;
  383.     P²íkaz zajistí p²edem urƒen∞ poƒet opakování jednoduchého nebo
  384.  sloºeného p²íkazu. ⁿídící prom╪nná musí b∞t ordinálního typu a uvádí
  385.  se p²ed ƒárkou, za kterou se uvede poƒáteƒní (ph) a koneƒná hodnota (kh), 
  386.  ty musí b∞t kompatibilní pro p²i²azení s ordinálním typem a musí b∞t 
  387.  ukonƒeny slovem part (v p²ípad╪ rozvinutí sekvence), next (pro jedno-
  388.  rázové ²eτení) nebo let (pro p²i²azení hodnot).
  389.  Operand / (pravé lomítko) urƒuje zvyτování cyklu od poƒáteƒní hodnoty
  390.  ke koncové a operand \ (levé lomítko) od koncové k poƒáteƒní hodnot╪. 
  391.  Bude-li ph 1 a kh 20, pak bude uvedeno 1 / 20 a cyklus bude probíhat od 
  392.  1 do 20 (vzestupn╪). Bude-li ph 20 a kh 1, pak bude operand uveden
  393.  20 \ 1 a cyklus bude probíhat od 20ti do 1 (tedy sestupn╪). 
  394.  Pokud bylo za urƒením opakování uvedeno slovo part, musí b∞t konec
  395.  sekvence oznaƒena slovem :for< do kterého màºeme vloºit p²ípadnou poznámku,
  396.  kterou ukonƒíme dalτím znakem < a jiº neuvádíme znak st²edníku.
  397.  
  398.  P²íklad sekvenƒního pouºití: 
  399.           |1|09for |0|09a,1/10 |1|09part
  400.           |0|09  .....
  401.           |0|09  .....
  402.           |1|09:for<a<
  403.  nebo jednorázového pouºití:
  404.           |1|09for |0|09a,1/10 |1|09next |0|09Writeln('.....');
  405.           |1|09for |0|09a,1/10 |1|09if |0|09Vyraz |1|09next ....;
  406.           atd.
  407.  nebo
  408.          |1|09for |0|09a,1/10 |1|09let |0|09Prom[a] : a;
  409.  u spojení se slovem let màºe b∞t také uvedeno slovo else:
  410.          |1|09for |0|09a,1/10 |1|09let |0|09Prom[a] : a |1|09else |0|09Prom[a] : 0;
  411.  
  412.  
  413.  |1|05 F.2  ü From ....;
  414.     P²íkaz p²edá ²ízení p²i provád╪ní programu na náv╪τtí definované
  415.  v argumentu p²íkazu. Náv╪τtí se musí deklarovat ve stejném bloku programu,
  416.  ve kterém je From pouºit. Pokud se náv╪τtí deklaruje uvnit² procedury
  417.  nebo funkce, není povolen skok mimo t╪lo procedury nebo funkce.
  418.  P²íklad: |0|09Main Jmeno;
  419.           |0|09DefFrom |1|09Start;
  420.           |0|09:>proc>
  421.           |1|09  @Start<
  422.           |0|09  ......
  423.           |0|09  If a = b |1|09From |0|09Start;
  424.           |0|09:<proc<
  425.  
  426.  |1|05 F.3  ü Func .....;
  427.     Oznaƒuje název vlastní funkce. Za názvem funkce musí b∞t st²edník.
  428.  Zaƒátek funkce oznaƒíme symbolem :> pro zaƒátek a symbolem :< konce.
  429.  P²íklad: |1|09Func |0|09Secti(h1,h2 : word) : word;
  430.           |0|09:>func>
  431.           |0|09    t╪lo funkce
  432.           |0|09:<func<
  433.  
  434.  |1|05 F.4  ü FuncInside .....;
  435.   Oznaƒuje název vloºené funkce v Main nebo Func. Za názvem funkce musí
  436.  b∞t st²edník. Vloºená funkce FuncInside màºe b∞t volána pouze v rámci
  437.  procedury Main/Func. Zaƒátek funkce oznaƒíme symbolem pro zaƒátek :>
  438.  a konec symbolem pro konec :<
  439.  P²íklad: |0|09Main Pocitani(Hod : integer); |0|12hlavní procedura
  440.           |0|09variable 
  441.           |0|09  integer~ X;
  442.  
  443.           |1|09  FuncInside |0|09Secti : integer      |0|12vloºená funkce
  444.           |1|09  :>fins>                  |0|12zaƒátek vloºené funkce
  445.           |1|09    obsah vloºené funkce
  446.           |1|09  :<fins<                  |0|12konec vloºené funkce
  447.  
  448.           |0|09:>proc>                    |0|12zaƒátek hlavní procedury
  449.           |0|09    t╪lo procedury
  450.           |0|09:<proc<                    |0|12konec hlavní procedury
  451.  
  452.  |1|05 F.5  ü Follow
  453.      Oznaƒuje zaƒátek hlavního t╪la programu (jeho ²ídící ƒást). Na rozdíl
  454.  od b╪ºné procedury tato ƒást nezaƒíná symbolem :> pro zaƒátek ani klíƒov∞m
  455.  slovem begin, které se ve TFB tém╪² nepouºívá. Klíƒové slovo Follow smí
  456.  b∞t pouºito pouze jednou v celém zdrojovém textu programu.
  457.  P²íklad: |1|09Follow
  458.           |0|09  InitFB;
  459.                   atd.
  460.  
  461. ~16|1|05  H
  462.  
  463.  |1|05 H.1  ü Heap <sss,min,max>
  464.     Globální direktiva, která nastavuje velikost zásobníku
  465.  (sss,od 1024 do 65520 byte), minimální velikost volné pam╪ti
  466.  (min, od 0 do 655360 byte) a velikost pam╪ti pro haldu (max,
  467.  od 0 do 655360 byte). Minimální velikost volné pam╪ti se
  468.  kontroluje p²ed spuτt╪ním programu. Není-li pam╪£ k dispozici,
  469.  program se ukonƒí s hláτením chyby. Velikost pam╪ti, která se
  470.  p²id╪lí pro haldu, urƒuje maximální poºadavky na pam╪£. Není-li
  471.  k dispozici tolik pam╪ti, p²id╪lí se vτechna zb∞vající. Pouºije-li
  472.  se tato direktiva v jednotce, ignoruje se.
  473.     V chrán╪ném reºimu se màºe pouze definovat velikost segmentu,
  474.  nelze definovat velikost haldy.
  475.  P²íklad : |0|09//Jmeno//
  476.            |1|09Heap <4000,0,0>
  477.  
  478. ~16|1|05  I
  479.  
  480.  |1|05 I.1  ü If Vyraz part
  481.  |1|05      ü :if<
  482.  |1|05      ü If Vyraz next ....;
  483.  |1|05      ü If Vyraz let ....;
  484.  |1|05      ü If Vyraz from ....;
  485.     P²íkaz zjiτ£uje stav prom╪nné typu Boolen, je-li TRUE nebo FALSE (!!),
  486.  a dalτí hodnoty uveden∞ch prom╪nn∞ch. Za p²íkazem následuje dalτí ²eτení
  487.  v následující sekvenci, kterou oznaƒuje slovo part. Sekvence se ukonƒí 
  488.  klíƒov∞m slovem :if< do kterého màºeme vloºit p²ípadnou poznámku, kterou
  489.  ukonƒíme dalτím znakem < a jiº neuvádíme znak st²edníku.
  490.  
  491.  P²íklad sekvenƒního pouºití: 
  492.           |1|09if |0|09v∞raz |1|09part
  493.           |0|09  ...
  494.           |1|09:if<
  495.  pro jednorázové pouºití slouºí slova next, let a from. Klíƒové slovo if
  496.  nesmí b∞t pouºito na jednom ²ádku vícekrát, ale pouze jednou.
  497.  P²íklad:
  498.          |1|09if |0|09vyraz |1|09let |0|09promenna : hodnota;
  499.  nebo    |1|09if |0|09vyraz |1|09let |0|09promenna : hod1 else promenna : hod2;
  500.  nebo    |1|09if |0|09vyraz |1|09next |0|09Procedura;
  501.  nebo    |1|09if |0|09vyraz |1|09from |0|09Skok;
  502.  
  503.  |1|05 I.2  ü #include <soubor>
  504.     V souboru se p²edpokládá zdrojov∞ text programu, jehoº obsah
  505.  se vloºí na místo této direktivy. Soubor se hledá v podadresá²i
  506.  ADD\ aktivního adresá²e, jehoº rozliτovací p²ípona je .ADD. Neuvádí
  507.  se proto ani cesta k souboru ani jeho rozliτovací p²ípona.
  508.  Blíºe v popisu souborà typu .ADD.
  509.  P²íklad : |1|12#include <SwapWord>
  510.  |1|05Pokud jsou ve zdrojovém textu souboru .ADD pouºita klíƒová slova
  511.  |1|05a p²íkazy jazyka TFB nesmí b∞t pro jejich vloºení do zdrojového
  512.  |1|05textu programu pouºita direktiva Pascalu {$I soubor.add} ! ! !
  513.  
  514.  |1|05 I.3  ü #include "cesta\soubor.typ"
  515.     V souboru se p²edpokládá zdrojov∞ text programu, jehoº obsah
  516.  se vloºí na místo této directivy. Soubor s uvedenou rozliτovací
  517.  p²íponou se hledá v adresá²i uvedeného parametrem cesta.
  518.  P²íklad : |1|12#include "c:\tp\inc\hexto.pas"
  519.  |1|05Pokud jsou ve zdrojovém textu souboru .ADD pouºita klíƒová slova
  520.  |1|05a p²íkazy jazyka TFB nesmí b∞t pro jejich vloºení do zdrojového
  521.  |1|05textu programu pouºita direktiva Pascalu {$I soubor.add} ! ! !
  522.  
  523. ~16|1|05  L
  524.  
  525.   |1|05 L.1  ü :let>
  526.   |1|05      ü :let<
  527.     Slovo :let> oznaƒuje zaƒátek sekvence, ve které se budou p²i²azovat
  528.  hodnoty do v╪tτího mnoºství prom╪nn∞ch. Celá sekvence pak musí b∞t
  529.  ukonƒena klíƒov∞m slovem :let< do kterého màºeme (stejn╪ jako u :let>)
  530.  vloºit p²ípadnou poznámku, kterou ukonƒíme dalτím znakem < a jiº
  531.  neuvádíme znak st²edníku (u :let<poznamka<) nebo > (u :let>poznamka>).
  532.  |1|05P²i²azování hodnot musí pokraƒovat aº na následujícím ²ádku a nesm╪jí
  533.  |1|05b∞t uvedena za slovem :let>. Je rovn╪º nep²ípustné uvedení obou slov
  534.  |1|05na jednom spoleƒném ²ádku!
  535.  
  536.  P²íklad:
  537.  |1|09:let>|0|09lret|1|09>
  538.  |0|09  DelRet : length(PuvZn);
  539.  |0|09 LfRet : Copy(LRet,1,Pos(PuvZn,LRet)-1);
  540.  |0|09  RgRet : Copy(LRet,Pos(PuvZn,LRet)+DelRet,length(LRet));
  541.  |1|09:let<|0|09lret|1|09<
  542.     Tato slova lze velmi dob²e vyuºít ve funkcích nebo procedurách, které
  543.  obsahují pouze p²id╪lování hodnot do prom╪nn∞ch a není proto nutné uvád╪t
  544.  jiº oznaƒení zaƒátku a konce procedury nebo funkce. V takto oznaƒeném
  545.  cyklu se vτak nesmí vyskytovat ºádná jiná klíƒová slova nebo p²íkazy.
  546.  P²íklad:
  547.  |0|09Main SwapWord(var VRet:string; PRet,NRet:string);
  548.  |0|09variable
  549.  |0|09  integer~DelRet;
  550.  |0|09  string~LfRet,RgRet;
  551.  |1|09:let>vret>
  552.  |0|09  DelRet : length(PRet);
  553.  |0|09  LfRet : Copy(VRet,1,Pos(PRet,VRet)-1);
  554.  |0|09  RgRet : Copy(VRet,Pos(PRet,VRet)+DelRet,length(VRet));
  555.  |0|09  VRet : LfRet+NRet+RgRet;
  556.  |1|09:let<vret<
  557.  
  558.   |1|05 L.2  ü Let .... ;
  559.     Toto klíƒové slovo oznaƒuje p²i²azení hodnoty nebo hodnot do uvedené
  560.  prom╪nné za tímto slovem. Mezi prom╪nnou a hodnotou se uvádí jako
  561.  rozliτovací znak dvouteƒka.
  562.  Za slovem Let màºe b∞t uvedeno v jednom ²ádku i více hodnot.
  563.  P²íklad: 
  564.  |1|09let |0|09A : B; Ret : '²et╪zec'; C : (d div 8); 
  565.     Pokud je p²i²azovaná hodnota ²et╪zcového typu a je delτí neº jeden
  566.  ²ádek, ukonƒí se uvozovkou a znaménkem + a pokraƒuje se na dalτím ²ádku. 
  567.  P²íklad: 
  568.  |1|09let |0|09Ret : 'Funkce PosDigit hledá v ²et╪zci znaky z mnoºiny '|1|09+
  569.  |0|09          '0 aº 9 a pokud takové v ²et╪zci nalezne, vrátí '|1|09+
  570.  |0|09          'hodnotu pozice.'|1|09; 
  571.     Cel∞ tento ²ádek pak musí b∞t ukonƒen znakem st²edník ;
  572.  
  573.   |1|05 L.2b ü let(..,..,..,..) : Hodnota;
  574.     Toto klíƒové slovo oznaƒuje |1|09hromadné |0|12p²i²azení hodnot do uveden∞ch
  575.  prom╪nn∞ch. Prom╪nné musí b∞t |1|09stejného typu |0|12a p²i²azovaná hodnota musí
  576.  b∞t pro vτechny spoleƒná a stejného typu jako prom╪nné. Pokud tedy
  577.  pot²ebujeme p²i²adit stejnou hodnotu více prom╪nn∞m, màºeme toto slovo
  578.  pouºít místo sekvenƒního |1|12:let>. |0|12P²edpokladem správnosti provedení je
  579.  umíst╪ní názvà prom╪nn∞ch |1|12do kulat∞ch závorek. |0|12Dále následuje znak
  580.  dvouteƒky, hodnota a st²edník, kter∞ cel∞ tento ²ádek uzav²e.
  581.  |1|05Hodnoty je moºné p²i²azovat tímto slovem na jednom jediném ²ádku!
  582.  |1|05(Nesmí b∞t rozd╪len na dva nebo více ²ádkà!)
  583.  P²íklad:
  584.  |1|09let(StrFa,StrOb,StrAdr,StrMi,StrTel) : '';
  585.  do uveden∞ch prom╪nn∞ch bude vloºen prázdn∞ ²et╪zec.
  586.  |1|09let(NumVyb,NumPol,SetPol) : 0;
  587.  do uveden∞ch prom╪nn∞ch bude vloºena hodnota nula.
  588.  
  589.  |1|05 L.3 ü :loop>
  590.  |1|05     ü :loop< .....;
  591.     Zajistí p²edem neurƒen∞ poƒet opakování jednoduchého nebo sloºeného
  592.  p²íkazu. P²íkaz se provede vºdy nejmén╪ jednou. P²íkaz :loop> obsahuje
  593.  podobn╪ jako While, v∞raz kter∞ ²ídí opakované provád╪ní vno²eného
  594.  p²íkazu. V∞raz musí b∞t standartního booleovského typu a vyhodnocuje
  595.  se po provedení vno²eného p²íkazu. Provád╪ní vno²eného p²íkazu se opakuje
  596.  tak dlouho, dokud není hodnota v∞razu True.
  597.  P²íklad: |1|09:loop>
  598.           |0|09   p²íkaz nebo p²íkazy
  599.           |1|09:loop< |0|09v∞raz;
  600.  
  601.  Za slovem :loop> nebo :loop< màºeme uvést p²ípadnou poznámku k cyklu,
  602.  kterou ukonƒíme dalτím znakem > (u :loop>) nebo < (u :loop<).
  603.  P²íklad:|1|09:loop>|0|09ikony|1|09>
  604.          |0|09   p²íkazy nebo p²íkaz
  605.          |1|09:loop<|0|09ikony|1|09< |0|09v∞raz;
  606.  
  607.  |1|05 M.1  ü Main .......;
  608.     Oznaƒuje název vlastní procedury. Za názvem procedury musí b∞t st²edník.
  609.  Zaƒátek procedury oznaƒíme symbolem :> pro zaƒátek a symbolem :< konce.
  610.  P²íklad: |1|09Main |0|09Pocitani(Hod : integer);
  611.           |0|09:>proc>
  612.           |0|12    t╪lo procedury
  613.           |0|09:<proc<
  614.  
  615.  |1|05 M.2  ü MainInside .......;
  616.    Oznaƒuje název vloºené procedury v Main/Func. Za názvem procedury musí
  617.  b∞t st²edník. Vloºená procedura MainInside màºe b∞t volána pouze v rámci
  618.  procedury Main/Func. Zaƒátek procedury oznaƒíme symbolem pro zaƒátek :>
  619.  a konec symbolem pro konec :<
  620.  P²íklad: |0|09Main Pocitani(Hod : integer);|0|12hlavní procedura
  621.           |0|09variable
  622.           |0|09  integer~ X;
  623.  
  624.           |1|09  MainInside |0|09Secti;             |0|12vloºená procedura
  625.           |1|09  :>ins>                  |0|12zaƒátek vloºené procedury
  626.           |1|09    obsah vloºené procedury
  627.           |1|09  :<ins<                  |0|12konec vloºené procedury
  628.           |1|09:>proc>                   |0|12zaƒátek hlavní procedury
  629.  
  630.           |0|09    t╪lo procedury
  631.           |0|09:<proc<                   |0|12konec hlavní procedury
  632.  
  633. ~16|1|05  N
  634.  
  635.  |1|05 N.1  ü .... next ....;
  636.     Klíƒové slovo se pouºívá pro oznaƒení jednorázového ²eτení ve spojení
  637.  se slovem if V∞raz next. Za slovem se uvede dalτí p²íkaz nebo volání
  638.  procedury ƒi funkce. Pokud za V∞razem následuje skok na definovanou
  639.  ƒást procedury/funkce, uvede se místo slova next slovo from. V p²ípad╪
  640.  jednorázového p²i²azování hodnot do prom╪nn∞ch se místo slova next
  641.  uvede slovo let.
  642.  P²íklad pouºití:
  643.     |0|09if Vyraz |1|09next |0|09Funkce;
  644.     |0|09if Vyraz |1|09next |0|09Procedura;
  645.  slovo next se neuvádí v p²ípad╪:
  646.     |0|09if Vyraz |1|09from |0|09SkokVen;
  647.     |0|09if Vyraz |1|09let |0|09Ret : 'Ahoj';
  648.  
  649.  |1|05 N.2  ü :note>
  650.  |1|05      ü :note<
  651.      N╪kdy se vyskytne pot²eba vloºit do zdrojového textu aplikace
  652.  informaƒní text nebo poznámku, která obsahuje více ²ádkà. Pro tento 
  653.  úƒel slouºí klíƒové slovo :note> které oznaƒuje zaƒátek textu,
  654.  kter∞ není zdrojem jazyka, ale pouze text. B╪ºn∞ text pak uvádíme
  655.  na dalτích ²ádcích - nikoliv vedle slova :note> ! Cel∞ text pak
  656.  ukonƒíme (op╪t na samostaném ²ádku) slovem :note<
  657.     P²íklad:
  658.     |0|09:note>
  659.     |0|09  V t╪chto ²ádcích jsou uvedeneny
  660.     |0|09  podrobn╪jτí pokyny pro obsluhu
  661.     |0|09  této aplikace a pod.
  662.     |0|09:note<
  663.  Pokud se poznámka vejde na jeden jedin∞ ²ádek, pouºijete se 
  664.  klíƒové slovo |1|12rem> |0|12(viz. kapitola o rem>) 
  665.  
  666.  
  667. ~16|1|05  O
  668.  
  669.  |1|05 O.1  ü OpenF@errlab(f,'soubor.xxx');
  670.  |1|05      ü OpenF@errlab(f/v,'soubor.xxx');
  671.  |1|05      ü OpenF(f,'soubor.xxx');
  672.  |1|05      ü OpenF(f/v,'soubor.xxx');
  673.     P²i²azuje jméno exertního diskového souboru a otev²e ho. P²edpokladem
  674.  je jeho existence na disku. Pokud soubor neexistuje, operace nebude 
  675.  provedena aniº by doτlo k chyb╪. Pokud byl soubor jiº otev²en, nejprve
  676.  se uzav²e a poté znovu otev²e. Po otev²ení se ukazatel v souboru nastaví
  677.  na první poloºku. Informaci o tom, zda je soubor prázdn∞, získáme pomocí
  678.  funkce Eof(f), která vrací logickou hodnotu TRUE, nebo pomocí funkce
  679.  FileSize(f), která v tomto p²ípad╪ vrací nulu.
  680.      Parametr "v" (velikost) je voliteln∞ a jedná se o v∞raz typu word.
  681.  Màºe se definovat pouze tehdy, jedná-li se o soubor bez udaného typu.
  682.  Parametr "v" (velikost) definuje velikost bloku, kter∞ se pouºívá p²i ƒtení
  683.  dat ze souboru. U typov∞ch nebo textov∞ch souborà se parametr velikost
  684.  n e u v á d í .
  685.  V p²ípad╪, ºe je za slovem @ a je uvedeno jméno náv╪τtí, od kterého má
  686.  program pokraƒovat v p²ípad╪ chyby, vypíτe se informaƒní okno s popisem
  687.  a ƒíslem chyby, a program bude pokraƒovat od definovaného náv╪τtí.
  688.  |1|05P²íkaz Assign se v tomto p²ípad╪ p²ed OpenF  n e u v á d í !
  689.  |1|05Neuvádí se ani p²epínaƒ {$I-} a {$I+}, nebo ResOff a ResOn,
  690.  |1|05které jsou jiº souƒástí tohoto p²íkazu. Pokud je za slovem @
  691.  |1|05a je uvedeno náv╪τtí, bude program pokraƒovat v p²ípad╪ chyby
  692.  |1|05od tohoto náv╪τtí. Podmínkou vτak je, ºe náv╪τtí je definováno
  693.  |1|05klíƒov∞m slovem DefFrom, a ºe toto náv╪τtí skuteƒn╪ existuje!
  694.  |1|05Musí b∞t za slovem #unit uvedena jednotka IOErrFB.
  695.  
  696.  |1|05 O.2  ü Other
  697.    Slovo oznaƒuje konec jedné sekvence, po které bude následovat dalτí,
  698.  která nabízí jinou moºnost ²eτení neº p²edeτlá. V podstat╪ to znamená,
  699.  ºe pàvodní sekvence jeτt╪ dále pokraƒuje svou dalτí ƒástí. V klasickém
  700.  Pascalu se tato sekvence ukonƒí slovem end (bez st²edníku) za kter∞m
  701.  dále následuje slovo else a dalτí begin pro následující ƒást sekvence.
  702.  Klíƒové slovo Other nahradí tato t²i slova. Slovo Other nelze pouºít
  703.  v p²ípad╪ jednorázového ²eτení (next nebo let). Protoºe oznaƒuje pràb╪h
  704.  z jedné sekvence do dalτí, |1|12nepouºívá se p²ed slovem dvouteƒka ani 
  705. symbol
  706.  |1|12> nebo <.
  707.  P²íklad:
  708.     se slovem other a if Vyraz part   bez slova other a if Vyraz next
  709.     |0|09Main Secti(x,y:integer);    |0|09Main Secti(x,y:integer);
  710.     |0|09:>proc>                     |0|09:>proc>
  711.     |0|09  if x < 10 part            |0|09  if x < 10 next
  712.     |0|09    x == 10;                |0|09  :>
  713.     |1|09  other                     |0|09    x == 10;
  714.     |0|09    x < 10;                 |0|09  end
  715.     |0|09  :if<x<                    |0|09   else
  716.     |0|09:<proc                      |0|09  :>
  717.                                 |0|09    x < 10;
  718.     Rozdíl je jist╪ patrn∞.     |0|09  :<
  719.                                 |0|09:<proc<
  720.  
  721.  |1|05 O.3 ü :OtherDo>
  722.  |1|05     ü :Other<
  723.     Toto klíƒové slovo nahrazuje dv╪ klíƒová slova souƒasn╪: -< a :>
  724.  v Pascalu je to else begin. Proto je moºné takto stanovenou sekvenci
  725.  ukonƒit ukonƒovacím slovem |1|12:other< |0|12nebo£ slovo :otherdo> je
  726.  v podstat╪ slovem zahajovacím (zahajuje novou sekvenci). Takto zapoƒatá
  727.  sekvence se màºe ukonƒit slovem :other<
  728.  P²íklad:
  729.  se slovem :otherdo>    bez slova :otherdo>     nebo
  730.  |0|09if a = 336 next       |0|09if a = 336 next        if a = 336 next
  731.  |0|09  let b:226           |0|09  let b:226               let b:226
  732.  |1|09 :otherdo>            |0|09  else                   else
  733.  |0|09  let b:228;          |0|09  :>                      :let>
  734.  |0|09 let c:315;          |0|09   let b:228;              b:228;
  735.  |1|09:other<               |0|09   let c:315;              c:315;
  736.                        |0|09  :<                      :let<
  737.  
  738.  |1|05 O.4 ü :ToOther<
  739.     Toto klíƒové slovo nahrazuje dv╪ klíƒová slova souƒasn╪: :< else
  740.  v Pascalu je to end else. Je v podstat╪ slovem ukonƒovacím.
  741.  P²íklad:
  742.  se slovem :ToOther<      bez slova :ToOther<
  743.  |0|09if a=336 part        |0|09if a=336 part
  744.  |0|09  let b:228;         |0|09  let b:228;
  745.  |0|09  let c:315;         |0|09  let c:315;
  746.  |1|09:toother<            |0|09 end
  747.  |0|09  let b:226;         |0|09 else
  748.                           |0|09  let b:226;
  749.  
  750. ~16|1|05  P
  751.  
  752.  |1|05 P.1  ü .... part
  753.     Slovo oznaƒuje zaƒátek sekvence, která byla zapoƒata slovem if, for,
  754.  while, case nebo with. Sekvence se ukonƒuje bu╘to ukonƒovacím slovem
  755.  pro libovolnou sekvenci :part< a nebo ukoƒovacím slovem stejného
  756.  v∞znamu jako poƒáteƒní slovo zahajující sekvenci (:if<, :for<, :while<,
  757.  :case< nebo :with<).
  758.  P²íklad pouºití slova part:    (ukonƒení slovem:)
  759.    |1|12if Vyraz part             :if<
  760.    |1|12for a,1/10 part           :for<
  761.    |1|12while Vyraz part          :while<
  762.    |1|12case Vyraz part           :case<
  763.    |1|12with Vyraz part           :with<
  764.  
  765.  |1|05 P.2 ü Public     |1|12pro jednotky / unity
  766.      Toto klíƒové slovo musí následovat za jménem jednotky. Urƒuje zaƒátek
  767.  propojovací, neboli také ve²ejné ƒásti jednotky. Veτkeré deklarace, které
  768.  se uvád╪jí v propojovací ƒásti jsou dostupné aplikaƒním programàm, které
  769.  jednotku pouºívají.
  770.  
  771. ~16|1|05  R
  772.  
  773.  |1|05 R.1  ü Read@errlab(f, data);
  774.     Stejn╪ jako procedura Read(f,typprom) naƒte poloºku souboru do
  775.  prom╪nné v operaƒní pam╪ti. Toto klíƒové slovo vτak upraví pàvodní
  776.  proceduru Read tak, ºe zajistí odchycení p²ípadné chyby p²i ƒtení
  777.  poloºky ze souboru, a vypíτe informaƒní okno s popisem a ƒíslem chyby.
  778.  Program pak pokraƒuje od pozice uvedeného náv╪τtí. Náv╪τtí musí b∞t
  779.  definováno za klíƒov∞m slovem DefFrom a musí skuteƒn╪ existovat.
  780.  Za klíƒov∞m slovem #unit musí b∞t uvedena jednotka IOErrFB.
  781.  P²íklad pouºití Read@errlab(f... :
  782.  |0|09variable
  783.  |0|09  file of word~FileWrd;
  784.  |0|09  word~DataWrd;
  785.  |1|09DefFrom EndProc;
  786.  |0|09:>proc>
  787.  |0|09  OpenF@EndProc(FileWrd,'SOUBOR.DTA');
  788.  |0|12  pokud doτlo k chyb╪ p²i otev²ení souboru jdi na EndProc
  789.  |0|09  :loop>
  790.  |1|09    Read@ErrProc(FileWrd,DataWrd);
  791.  |0|12    pokud doτlo k chyb╪ p²i ƒtení ze souboru jdi na ErrProc
  792.  |0|09  :loop< Eof(FileWrd);
  793.  |1|09  @ErrProc<
  794.  |0|09  Close(FileWrd);
  795.  |0|09  @EndProc<
  796.  |0|09:<proc<
  797.  
  798.  |1|05 R.2  ü ReadLn@errlab(t, string);
  799.     Stejn╪ jako procedura ReadLn(t,string) naƒte poloºku textového 
  800.  souboru. Toto klíƒové slovo vτak upraví pàvodní proceduru ReadLn tak,
  801.  ºe zajistí odchycení p²ípadné chyby p²i ƒtení poloºky a vypíτe informaƒní
  802.  okno s popisem a ƒíslem chyby. Program pak pokraƒuje od uvedeného náv╪τtí,
  803.  které musí b∞t definováno za klíƒov∞m slovem DefFrom a musí skuteƒn╪
  804.  existovat. Za slovem #unit musí b∞t uvedena jednotka IOErrFB.
  805.  P²íklad pouºití ReadLn[errlab](t,... :
  806.  |0|09variable
  807.  |0|09  text~FileTxt;
  808.  |0|09  string~Radek;
  809.  |1|09DefFrom EndProc;
  810.  |0|09:>proc>
  811.  |0|09  OpenF@EndProc(FileTxt,'SOUBOR.TXT');
  812.  |0|12  pokud doτlo k chyb╪ p²i otev²ení souboru jdi na EndProc
  813.  |0|09  :loop>
  814.  |1|09    ReadLn@ErrProc(FileTxt,Radek);
  815.  |0|12    pokud doτlo k chyb╪ p²i ƒtení ze souboru jdi na ErrProc
  816.  |0|09  :loop< Eof(FileTxt);
  817.  |1|09  @ErrProc<
  818.  |0|09  Close(FileTxt);
  819.  |0|09  @EndProc<
  820.  |0|09:<proc<
  821.  
  822.  
  823.  |1|05 R.3 ü ResErr
  824.     Zjiτ£uje stav IO operací pokud je v∞sledek ràzn∞ od nuly, doτlo
  825.  k chyb╪.
  826.  
  827.  P²íklad: 
  828.   |0|09ResOff;     |0|12{p²i chyb╪ nebude program ukonƒen}
  829.   |0|09OpenF(f,'TEST.FBS');  |0|12{ otev²ení souboru }
  830.   |0|09if |1|09ResErr |0|09next exit; |0|12{ pokud je v∞sledek ràzn∞ od nuly, }
  831.                              { ukonƒi tuto ƒást programu        }
  832.   |1|09ResOn;      |0|12{ op╪t se kontroluje v∞sledek operací }
  833.  
  834.  |1|05 R.4 ü ResOk
  835.     Zjiτ£uje stav IO operací pokud se v∞sledek rovná nule, nedoτlo
  836.  k ºádné chyb╪.
  837.  P²íklad: |1|09ResOff; 
  838.           |0|09OpenF(f,'TESTFB.FBS');
  839.           |0|09If |1|09ResOk |0|09next Readln(f,Radek);
  840.           |1|09ResOn;
  841.  
  842.  |1|05 R.5  ü RecordType = Ident
  843.     Deklarace typu záznam, která se jinak uvádí po klíƒovém slov╪ type.
  844.  V tomto p²ípad╪ se klíƒové slovo type neuvádí. Jako identifikátor se
  845.  uvede oznaƒení záznamu. Proti p²edeτl∞m typov∞m deklaracím se parametry
  846.  neuzavírají do hranat∞ch ani kulat∞ch závorek, ale uvád╪jí se od dalτího
  847.  ²ádku podobn╪ jako za klíƒov∞m slovem variable nebo var. Celá deklarace 
  848.  se ukonƒí symbolem :<
  849.  P²íklad : |1|09RecordType |0|09= Adresa
  850.            |0|09    Jmeno : string[20];
  851.            |0|09    Prijm : string[20];
  852.            |0|09    Ulice : string[35];
  853.            |1|09  :<adresa<    
  854.  
  855.  |1|05 R.6  ü RenameF@errlab(f,'puvodni.xxx','novy.xxx');
  856.  |1|05      ü RenameF(f,'puvodni.xxx','novy.xxx');
  857.     P²i²azuje jméno externího diskového souboru. P²edpokladem je, ºe soubor
  858.  na disku existuje. P²ejmenuje existující soubor puvodni.xxx nov∞m jménem
  859.  definovan∞m parametrem novy.xxx. P²ejmenovat nelze jiº otev²en∞ soubor.
  860.  V p²ípad╪, ºe za slovem je znak @ a je uvedeno jméno náv╪τtí, od kterého má
  861.  program pokraƒovat v p²ípad╪ chyby, vypíτe se informaƒní okno s popisem
  862.  a ƒíslem chyby, a program bude pokraƒovat od definovaného náv╪τtí.
  863.  |1|05P²íkaz Assign se v tomto p²ípad╪ p²ed RenameF  n e u v á d í !
  864.  |1|05Neuvádí se ani p²epínaƒ {$I-} a {$I+}, nebo ResOff a ResOn,
  865.  |1|05které jsou jiº souƒástí tohoto p²íkazu. Pokud je za slovem @
  866.  |1|05a je uvedeno náv╪τtí, bude program pokraƒovat v p²ípad╪ chyby
  867.  |1|05od tohoto náv╪τtí. Podmínkou vτak je, ºe náv╪τtí je definováno
  868.  |1|05klíƒov∞m slovem DefFrom, a ºe toto náv╪τtí skuteƒn╪ existuje!
  869.  |1|05Musí b∞t za slovem #unit uvedena jednotka IOErrFB.
  870.  
  871.  |1|05 R.7 ü Replicate Jmeno(N) = (......);
  872.  |1|05       Rep(Jmeno,N);
  873.    Tímto p²íkazem se vytvo²í datové ²et╪zcové pole dle uvedeného
  874.  parametru Jmeno o poƒtu poloºek dle parametru N. Jednotlivé poloºky
  875.  tohoto pole se volají p²íkazem Rep(Jmeno,N). Poloºky tohoto pole
  876.  jsou pevn╪ dány a lze je pouze ƒíst (nelze je m╪nit).
  877.  P²íklad:
  878.  |1|09Replicate |0|09Info(3) =
  879.  |0|09  ('chyba p²i','opakovat znovu','Mám skuteƒn╪ zruτit ');
  880.  |0|09  ......
  881.  |0|09  WinInfoLine('Zjiτt╪na '+|1|09Rep(Inf,1)|0|09+' naƒítání');
  882.    nebo
  883.  |0|09  WinInfoLine('Chcete '+|1|09Rep(Inf,2)|0|09+' funkci ?');
  884.    nebo
  885.  |0|09  WinInfoLine(|1|09Rep(Inf,3)|0|09+' tento soubor ?');
  886.    a pod.
  887.  
  888.  |1|05 R.8 ü ResOff;
  889.     Lokální p²epínaƒ, kter∞ ²ídí generování p²ídavného kódu, kter∞
  890.  kontroluje v∞sledek V/V operací. P²i uvedení p²íkazu ResOff se
  891.  musí kontrolovat v∞sledek prost²ednictvím funkce IfResErr nebo IfResOk.
  892.  Toto klíƒové slovo se pouºívá pouze ve spojení s pascalovsk∞mi slovy
  893.  pro práci se soubory. U klíƒov∞ch slov TFB se jiº nepouºívají, nebo£
  894.  vτechny p²íkazy pro práci se soubory je mají jiº zabudovány.
  895.  
  896.  |1|05 R.9 ü ResOn;
  897.     Lokální p²epínaƒ, kter∞ ²ídí generování p²ídavného kódu, kter∞
  898.  kontroluje v∞sledek V/V operací. P²i uvedení p²íkazu ResOn se
  899.  hlásí chyby V/V operací automaticky a provád╪n∞ program se ukonƒí.
  900.  Toto klíƒové slovo se pouºívá pouze ve spojení s pascalovsk∞mi slovy
  901.  pro práci se soubory. U klíƒov∞ch slov TFB se jiº nepouºívají, nebo£
  902.  vτechny p²íkazy pro práci se soubory je mají jiº zabudovány.
  903.  
  904.  |1|05 R.10 ü rem>
  905.     Toto slovo oznaƒuje zaƒátek poznámky na ²ádku. Poznámka màºe
  906.  b∞t uvedena za libovoln∞m p²íkazem, ale za poznámkou jiº nesmí
  907.  následovat ºádn∞ p²íkaz nebo klíƒové slovo. Slovo rem> totiº
  908.  oznaƒí od pozice jeho umíst╪ní na ²ádku dalτí text aº na úpln∞
  909.  konec ²ádku jako pouhou poznámku. Proto za tímto slovem jiº
  910.  nesmí následovat jiné klíƒové slovo nebo p²íkaz.
  911.     P²íklad:
  912.     |1|05InitFB;  rem> inicializace grafického reºimu
  913.   nebo
  914.     |1|05for n,1/9 part  rem> cyklus od 1 do 9
  915.   a pod.
  916.  
  917. ~16|1|05  S
  918.  
  919.  |1|05 S.1  ü Stand   |1|12pouze v jednotce / unit╪
  920.     Tímto klíƒov∞m slovem zaƒíná implementaƒní ƒást, která màºe obsahovat
  921.  dalτí deklarace konstant, prom╪nn∞ch, definice typà. Deklarace v imple-
  922.  mentaƒní ƒásti nejsou p²edm╪tem exportu z jednotky a nejsou p²ístupné
  923.  z programu, kter∞ jednotku pouºívá. Implementaƒní ƒást obsahuje t╪la
  924.  procedur a funkcí, kaºdá procedura nebo funkce se uvádí sv∞m jménem
  925.  a parametry. Implementaƒní ƒást se ukonƒuje klíƒov∞m slovem EndFo
  926.  nebo màºe konƒit tzv. inicializaƒní ƒástí tak, ºe p²ed EndFo vloºíme
  927.  Follow. Mezi temito klíƒov∞mi slovy pak napíτeme vlastní iniciali-
  928.  zaƒní program.
  929.  
  930.  |1|05 S.2  ü SetOpenF@errlab(f,'soubor.xxx'>odkud);
  931.  |1|05      ü SetOpenF@errlab(f/v,'soubor.xxx'>odkud);
  932.  |1|05      ü SetOpenF(f,'soubor.xxx'>odkud);
  933.  |1|05      ü SetOpenF(f/v,'soubor.xxx'>odkud);
  934.     P²i²azuje jméno exertního diskového souboru a otev²e ho. Ukazatel
  935.  první pozice v souboru bude nastaven na základ╪ parametru |1|0odkud
  936.  (nahrazuje slovo seek, které se v tomto p²ípad╪ jiº neuvádí).P²edpokladem
  937.  je jeho existence na disku. Pokud soubor neexistuje, operace nebude 
  938.  provedena aniº by doτlo k chyb╪. Pokud byl soubor jiº otev²en, nejprve
  939.  se uzav²e a poté znovu otev²e. Po otev²ení se ukazatel v souboru nastaví
  940.  na první poloºku. Informaci o tom, zda je soubor prázdn∞, získáme pomocí
  941.  funkce Eof(f), která vrací logickou hodnotu TRUE, nebo pomocí funkce
  942.  FileSize(f), která v tomto p²ípad╪ vrací nulu.
  943.      Parametr "v" (velikost) je voliteln∞ a jedná se o v∞raz typu word.
  944.  Màºe se definovat pouze tehdy, jedná-li se o soubor bez udaného typu.
  945.  Parametr "v" (velikost) definuje velikost bloku, kter∞ se pouºívá p²i ƒtení
  946.  dat ze souboru. U typov∞ch nebo textov∞ch souborà se parametr velikost
  947.  n e u v á d í .
  948.  V p²ípad╪, ºe za znakem @ je uvedeno jméno náv╪τtí, od kterého má
  949.  program pokraƒovat v p²ípad╪ chyby, vypíτe se informaƒní okno s popisem
  950.  a ƒíslem chyby, a program bude pokraƒovat od definovaného náv╪τtí.
  951.  |1|05P²íkaz Assign se v tomto p²ípad╪ p²ed SetOpenF  n e u v á d í !
  952.  |1|05Neuvádí se ani p²epínaƒ {$I-} a {$I+}, nebo ResOff a ResOn,
  953.  |1|05které jsou jiº souƒástí tohoto p²íkazu. Pokud je za slovem znak @
  954.  |1|05a je uvedeno náv╪τtí, bude program pokraƒovat v p²ípad╪ chyby
  955.  |1|05od tohoto náv╪τtí. Podmínkou vτak je, ºe náv╪τtí je definováno
  956.  |1|05klíƒov∞m slovem DefFrom, a ºe toto náv╪τtí skuteƒn╪ existuje!
  957.  |1|05Musí b∞t za slovem #unit uvedena jednotka IOErrFB.
  958.  |1|05POZOR ! P²íkaz SetOpenF se nesmí pouºít u souborà typu text.
  959.  
  960.  |1|05 S.3  ü StrPos(HRet,PRet) ....;
  961.  |1|05      ü StrPos(HRet,PRet) from ....;
  962.  |1|05      ü StrPos(HRet,PRet) let ....;
  963.  |1|05      ü StrPos(HRet,PRet) part
  964.      Funkce zjiτ£uje, zda hledan∞ ²et╪zec HRet je obsaºen v pàvodním
  965.  ²et╪zci PRet. Zjiτt╪ní vrací jako hodnotu typu boolean TRUE. Za p²íkazem
  966.  musí b∞t uveden dalτí |1|12p²íkaz |0|12(název procedury) nebo klíƒové
  967.  slovo |1|12from |0|12za kter∞m následuje jméno náv╪τtí, dále klíƒové slovo
  968.  |1|12let |0|12za kter∞m následuje p²i²azování hodnot do prom╪nn∞ch, nebo
  969.  slovo |1|12part |0|12které oznaƒuje zaƒátek nové sekvence.
  970.  |1|05Mezi následn∞mi klíƒov∞mi slovy nebo p²íkazy se nesmí pouºít slovo 
  971. next.
  972.  P²íklady:
  973.    |1|12StrPos('tel',PRet) let PRet : PRet + 'tel';
  974.    |1|12StrPos('tel',PRet) from JdiDale;
  975.    |1|12StrPos('tel',PRet) NapisTo;
  976.   nebo
  977.    |1|12StrPos('tel',PRet) part
  978.    |1|12   ...........
  979.    |1|12   ...........
  980.    |1|12:part<pos<
  981.  
  982.  |1|05 S.4  ü StrNotPos(HRet,PRet) ....;
  983.  |1|05      ü StrNotPos(HRet,PRet) from ....;
  984.  |1|05      ü StrNotPos(HRet,PRet) let ....;
  985.  |1|05      ü StrNotPos(HRet,PRet) part
  986.      Funkce zjiτ£uje, zda hledan∞ ²et╪zec HRet je obsaºen v pàvodním
  987.  ²et╪zci PRet. Zjiτt╪ní vrací jako hodnotu typu boolean FALSE. Za p²íkazem
  988.  musí b∞t uveden dalτí |1|12p²íkaz |0|12(název procedury) nebo klíƒové
  989.  slovo |1|12from |0|12za kter∞m následuje jméno náv╪τtí, dále klíƒové slovo
  990.  |1|12let |0|12za kter∞m následuje p²i²azování hodnot do prom╪nn∞ch, nebo
  991.  slovo |1|12part |0|12které oznaƒuje zaƒátek nové sekvence.
  992.  |1|05Mezi následn∞mi klíƒov∞mi slovy nebo p²íkazy se nesmí pouºít slovo 
  993.  |1|05next.
  994.  P²íklady:
  995.    |1|12StrNotPos('tel',PRet) let PRet : PRet + 'tel';
  996.    |1|12StrNotPos('tel',PRet) from JdiDale;
  997.    |1|12StrNotPos('tel',PRet) NapisTo;
  998.  nebo
  999.    |1|12StrNotPos('tel',PRet) part
  1000.    |1|12   ...........
  1001.    |1|12   ...........
  1002.    |1|12:part<pos<
  1003.  
  1004.  
  1005. ~16|1|05  T
  1006.  |1|05 T.1 ü #Translation
  1007.  |1|05 T.2 ü #NoTranslation
  1008.       Protoºe sekvenƒní a jednorázová klíƒová slova TFBPRO nelze
  1009.  kombinovat se slovy TP ani ASM (assembleru), |1|12je nutné pouºít
  1010.  |1|12tuto direktivu p²ekladaƒe pro tu ƒást zdrojového textu, která
  1011.  |1|12bude obsahovat klíƒová slova a p²íkazy TP nebo ASM.
  1012.       Umíst╪ní slova |1|12#NoTranslation |0|12p²ed ƒást zdrojového textu,
  1013.  kter∞ obsahuje p²íkazy a klíƒová slova jazyka Turbo Pascal nebo
  1014.  Assembleru, zpàsobí, ºe |1|12p²ekladaƒ tyto p²íkazy ponechá v pàvodním
  1015.  |1|12zn╪ní, ve kterém je p²edá kompilátoru.
  1016.       Pro ƒást zdrojového textu, kter∞ bude dále obsahovat
  1017.  klíƒová slova a p²íkazy TFBPRO se po ƒásti oznaƒené #NoTranslation
  1018.  musí pouºít slovo |1|12#Translation, |0|12které p²ekladaƒi naznaƒí, ºe 
  1019. následn∞
  1020.  zdrojov∞ text je jiº op╪t psán v jazyce TFBPRO a je povoleno jeho
  1021.  p²eloºení pro kompilátor.
  1022.  
  1023. ~16|1|05  U
  1024.  
  1025.  |1|05 U.1 ü #unit
  1026.     Uvádí se seznam jednotek .FBL, které bude program pouºívat. Seznam
  1027.  màºe b∞t uveden i v jednotce, která màºe pouºívat jiné jednotky.
  1028.  P²íklad: program:                     jednotka:
  1029.           |1|12//Jmeno//                \\Jmeno\\
  1030.           |1|12Heap <4000,0,0>          Public
  1031.           |1|09#unit |1|12Dos, GraphFb;      |1|09#unit |1|12GraphFB;
  1032.  
  1033. ~16|1|05  V
  1034.  
  1035.  |1|05 V.1  ü variable
  1036.     Pouºívá se pro deklaraci prom╪nn∞ch ordninálních typà.|1|09 Za tímto
  1037.  |1|09klíƒov∞m slovem nesmí b∞t ºádná jiná klíƒová slova nebo p²íkazy.
  1038.  Vyjímku tvo²í pouze poznámka uvedená ve sloºen∞ch závorkách {}, která
  1039.  vτak nesmí obsahovat tento znak ~.
  1040.     Deklarace prom╪nn∞ch se uvád╪jí na dalτích ²ádcích. Název typu se
  1041.  ukonƒí znakem ~, za kter∞m se uvedene jméno nebo jména prom╪nn∞ch.
  1042.  Základním pravidlem je: uvedení typu ukonƒeného znakem~jméno prom╪nné.
  1043.  Pokud je prom╪nn∞ch stejného typu více (proto bylo toto slovo zavedeno),
  1044.  uvedou se za typem odd╪lené ƒárkou. Celá deklarace musí b∞t ukonƒena
  1045.  st²edníkem.
  1046.  P²íklad:
  1047.         |1|09variable
  1048.         |1|09  string~ |0|09NRet, Nazev, Hlavicka, Heslo;
  1049.         |1|09  word~   |0|09GetD, Delka;
  1050.         |1|09  file of byte~ |0|09f, fp, souf;
  1051.         |1|09  integer~ |0|09X, Y, X2, Y2;
  1052.         |1|09  Declare : Pole[1-10/string[15]];
  1053.                                       a pod.
  1054.  |1|09Za slovem Declare jiº nesm╪jí b∞t uvedeny ºádné samostané deklarace!
  1055.  |0|09Pokud pouºijete jako klíƒové slovo pouze |1|09var |0|09neuvádí se za 
  1056.  |0|09typem prom╪nné znak ~ . V takovém p²ípad╪ by kompilátor ohlásil chybu.
  1057.  |1|09Znak ~ se neuvádí ani za slovem Declare.
  1058.  |0|09Klíƒové slovo variable se nesmí pouºít pro deklaraci prom╪nn∞ch v názvu
  1059.  |0|09procedury (Main, MainInside) a funkce (Func, FuncInside), kde se 
  1060.  |0|09pouºívá klíƒové slovo |1|09var.
  1061.  |1|09správn╪: Main Procedura(var x,y:integer);
  1062.  |1|12chybn╪:  Main Procedura(variable integer~x,y);
  1063.  
  1064. ~16|1|05  W
  1065.  
  1066.  |1|05 W.1 ü with vyraz part
  1067.  |1|05     ü :with<
  1068.     P²íkaz zajistí zkrácen∞ postup odkazování na poloºky záznamu. Uvnit²
  1069.  p²íkazu lze provád╪t odkazy na poloºky záznamu pouze identifikátorem
  1070.  poloºky, není nutné uvád╪t idetifikátor poloºky.
  1071.       |1|12 With prom╪ná typu záznam part
  1072.  V argumentu p²íkazu With se musí pouºít identifikátor prom╪nné typu
  1073.  záznam. Vno²en∞m p²íkazem b∞vá v╪tτinou sloºen∞ p²íkaz. Pouºití p²íkazu
  1074.  si ukáºeme na p²íklad╪ typu Registers, kter∞ se deklaruje ve standartní
  1075.  jednotce DOS:
  1076.       |1|12variable
  1077.       |1|12   Registers~ Reg;
  1078.       |1|12:>proc>
  1079.       |1|12  Reg.AX == ...|0|12odkaz na registr AX bez p²íkazu With
  1080.       |1|09  with |0|09Reg |1|09part
  1081.       |1|12    AX == ...  |0|12odkaz na registr AX v p²íkazu DoWith
  1082.       |1|09  :with<|0|09reg|1|09<      
  1083.       |1|12:<proc<
  1084.  Uvnit² p²íkazu With se u kaºdého odkazu na prom╪nnou nejprve kontroluje
  1085.  zda se màºe interpretovat jako poloºka záznamu. Je-li to moºné, pak se
  1086.  vºdy takto interpretuje, i kdyº je souƒasn╪ dostupná prom╪nná se stejn∞m
  1087.  jménem,
  1088.       |1|12RecordType = Bod
  1089.       |1|12       X,Y : integer;
  1090.       |1|12     end;
  1091.       |1|12variable
  1092.       |1|12   integer~ X, Y;
  1093.       |1|12   Bod~ B;
  1094.       |1|12:>proc>
  1095.       |1|09  With |0|09B |1|09part
  1096.       |1|12    let X : 5;
  1097.       |1|12    let Y : 8;
  1098.       |1|09  :with<|0|09B|1|09<
  1099.       |1|12:<proc<
  1100.  Poznámka: X a Y màºe odkazovat na prom╪nné nebo na sloºky záznamu typu
  1101.  Bod. Protoºe jsou p²i²azovací p²íkazy vno²en∞m p²íkazem p²íkazu With
  1102.  provádí se automaticky odkaz na poloºky záznamu, i kdyº existují
  1103.  prom╪nné stejného jména.
  1104.      P²íkaz With se màºe pouºít za stejn∞ch podmínek i na instancích
  1105.  typu objekt. V p²ípad╪ OOP se vτak jedná o technologickou chybu p²i
  1106.  v∞stavb╪ programu, i kdyº p²ekladaƒ nehlásí chybu zápisu ani logickou
  1107.  chybu b╪hu programu.
  1108.  Konec této sekvence ukonƒíme klíƒov∞m slovem :with< do kterého màºeme
  1109.  vloºit p²ípadnou poznámku, kterou ukonƒíme dalτím znakem < a jiº
  1110.  neuvádíme znak st²edníku.
  1111.  
  1112.  |1|05 W.2  ü  while vyraz part
  1113.  |1|05      ü  :while<
  1114.      P²íkaz zajistí p²edem neurƒen∞ poƒet opakování jednoduchého nebo
  1115.  sloºené p²íkazu.
  1116.  P²íklad:|1|12variable 
  1117.          |1|12  integer~ i;
  1118.          |1|09While |0|09i < 100 |1|09part  |0|12{ dokud je i menτí neº 100}
  1119.          |1|12  Inc(i);
  1120.          |1|09:while<|0|09i|1|09<
  1121.  
  1122.  |1|05 W.3  ü WipeF@errlab(f,'puvodni.xxx');
  1123.  |1|05      ü WipeF(f,'puvodni.xxx');
  1124.     P²i²azuje jméno externího diskového souboru urƒeného pro zruτení
  1125.  (smazání z disku). P²edpokladem je, ºe soubor na disku existuje.
  1126.  Pokud soubor neexistuje, nebude operace provedna aniº by doτlo k chyb╪.
  1127.  V p²ípad╪, ºe je za slovem @ a je uvedeno jméno náv╪τtí, od kterého má
  1128.  program pokraƒovat v p²ípad╪ chyby, vypíτe se informaƒní okno s popisem
  1129.  a ƒíslem chyby, a program bude pokraƒovat od definovaného náv╪τtí.
  1130.  Pokud je soubor jiº otev²en∞, nejprve se uzav²e a poté se op╪t otev²e.
  1131.  |1|05P²íkaz Assign se v tomto p²ípad╪ p²ed WipeF  n e u v á d í !
  1132.  |1|05Neuvádí se ani p²epínaƒ {$I-} a {$I+}, nebo ResOff a ResOn,
  1133.  |1|05které jsou jiº souƒástí tohoto p²íkazu. Pokud je za slovem znak @
  1134.  |1|05a je uvedeno náv╪τtí, bude program pokraƒovat v p²ípad╪ chyby
  1135.  |1|05od tohoto náv╪τtí. Podmínkou vτak je, ºe náv╪τtí je definováno
  1136.  |1|05klíƒov∞m slovem DefFrom, a ºe toto náv╪τtí skuteƒn╪ existuje!
  1137.  |1|05Musí b∞t za slovem #unit uvedena jednotka IOErrFB.
  1138.  
  1139.  
  1140.  |1|05 W.5  ü Write@errlab(f, data);
  1141.    Stejn╪ jako procedura Write(f,data) zapíτe prom╪nnou do souboru.
  1142.  Voliteln∞ parametr f je prom╪nná typu soubor a parametr data jsou
  1143.  jednotlivé poloºky souboru, kter∞ musí odpovídat typu jedné sloºky
  1144.  souboru. Mohou b∞t typu char, integer, real, ²et╪zec nebo boolean.
  1145.  Klíƒové slovo Write@ upravuje tuto proceduru tak, ºe odchytí
  1146.  p²ípadnou chybu p²i ƒtení ze souboru, a pokraƒuje od definovaného
  1147.  náv╪τtí za znakem @. Náv╪τtí musí definováno za klíƒov∞m slovem
  1148.  DefFrom a musí skuteƒn╪ existovat.
  1149.  Za klíƒov∞m slovem #unit musí b∞t uvedena jednotka IOErrFB.
  1150.  P²íklad pouºití:
  1151.  |1|12variable
  1152.  |1|12  file of word~FileWrd;
  1153.  |1|12  word~DataWrd;
  1154.  |1|09DefFrom EndProc;
  1155.  |1|12:>proc>
  1156.  |1|12  OpenF@EndProc(FileWrd,'SOUBOR.DTA');
  1157.  |0|12  pokud doτlo k chyb╪ p²i otev²ení souboru jdi na EndProc
  1158.  |1|12  :loop>
  1159.  |1|09    Write@ErrProc(FileWrd,DataWrd);
  1160.  |0|12    pokud doτlo k chyb╪ p²i ƒtení ze souboru jdi na ErrProc
  1161.  |1|12  :loop< Eof(FileWrd);
  1162.  |1|09  @ErrProc<
  1163.  |1|12  Close(FileWrd);
  1164.  |1|12  @EndProc<
  1165.  |1|12:<proc<
  1166.  
  1167.  |1|05 W.6  ü WriteLn@errlab(t, string);
  1168.    Stejn╪ jako procedura WriteLn(t,string) zapíτe prom╪nnou do souboru.
  1169.  Procedura se màºe pouºít pouze pro zápis do textov∞ch souborà.
  1170.  Klíƒové slovo WriteLn@ upravuje tuto proceduru tak, ºe odchytí
  1171.  p²ípadnou chybu p²i ƒtení ze souboru, a pokraƒuje od uvedeného
  1172.  náv╪τtí, které musí b∞t definováno za klíƒov∞m slovem DefFrom
  1173.  a musí skuteƒn╪ existovat.
  1174.  P²íklad pouºití:
  1175.  |1|12variable
  1176.  |1|12  text~FileTxt;
  1177.  |1|12  string~Radek;
  1178.  |1|09DefFrom EndProc;
  1179.  |1|12:>proc>
  1180.  |1|12  OpenF@EndProc(FileTxt,'SOUBOR.TXT');
  1181.  |0|12  pokud doτlo k chyb╪ p²i otev²ení souboru jdi na EndProc
  1182.  |1|12  :loop>
  1183.  |1|09    WriteLn@ErrProc(FileTxt,Radek);
  1184.  |0|12    pokud doτlo k chyb╪ p²i ƒtení ze souboru jdi na ErrProc
  1185.  |1|12  :loop< Eof(FileWrd);
  1186.  |1|09  @ErrProc<
  1187.  |1|12  Close(FileTxt);
  1188.  |1|12  @EndProc<
  1189.  |1|12:<proc<
  1190.  
  1191.  
  1192.  
  1193.  
  1194.