Klávesové zkratky na tomto webu - základní
Přeskočit hlavičku portálu

Úvod do jazyka OPL (8)

aktualizováno 
Pokračujeme v pokročilejším programování v OPL.

Práce se soubory a adresáři

Jazyk OPL nabízí pestrou paletu funkcí pro kopírování, přejmenovávání a mazání souborů a adresářů. Soubory je možné kopírovat příkazem COPY, mazat (DELETE) a přejmenovávat (RENAME). Příkazem MKDIR "C:\TMP\AAA" vytvoříme podadresář AAA v adresáři TMP; pokud adresář TMP před tím neexistoval, bude vytvořen také. Adresáře mažeme příkazem RMDIR.

PROC vypis:
  LOCAL s$(255)
  s$=DIR$("Z:\System\OPL\*.o?h") : REM -- v paměti ROM --
  PRINT "Výpis adresáře"
  WHILE s$<>""
    PRINT s$
    s$=DIR$("")
  ENDWH
  GET
ENDP
i%=EXIST(soubor$)

Funkce EXIST slouží ke zjištění, zda daný soubor existuje; pro zjištění obsahu adresáře používáme funkci DIR$ jako v předchozím příkladu. Konečně příkazem SETPATH nastavujeme základní adresář pro soubory programu - pro přístup k souborům v tomto adresáři nemusíme uvádět plnou cestu k souboru.

Otevírat a vytvářet různé soubory se naučíme v příští sérii článků. Pokud volání uvedených příkazů není úspěšné (například pokud je mazaný soubor chráněn proti zápisu), tak uvedené příkazy generují systémovou chybu a provádění programu je předčasně ukončeno. Tomuto chování můžeme předejít vlastním zpracováním chyb pomocí příkazu TRAP nebo ONERR.

Ošetření chybových situací v OPL

V běžícím programu OPL může dojít k chybám, které zastaví běh programu a na displeji zobrazí okno s informací o typu a umístění chyby. K takovým chybám dochází například při pokusu o dělení nulou, není-li nalezena proměnná nebo selže-li nějaký příkaz OPL (například pokud příkaz COPY nenajde soubor, který má kopírovat).

Uživatel však od našeho programu čeká elegantnější chování, než je ukončení programu s chybovou hláškou, kdykoliv dojde k chybě. Proto se musíme pustit do zpracování chyb v našem programu sami. Srovnejte následující dvě procedury, které se pokoušejí kopírovat neexistující soubor:

PROC prvni:
  COPY "C:\neexistuje","Z:\"
  GET
ENDP

PROC druha:
  TRAP COPY "C:\neexistuje","Z:\"
  PRINT "Chyba kopírování ("; ERR$(ERR); ")"
  GET
ENDP

Zatímco první procedura skončí s nepěknou systémovou chybovou zprávou, druhá procedura jen vypíše zprávu o chybě na displeji a případně dovolí uživateli dále pokračovat. Druhá procedura nám také ilustruje první způsob zpracování chyb - spornému příkazu (APPEND, BACK, CANCEL, CLOSE, COPY, CREATE, DELETE, ERASE, EDIT, FIRST, gCLOSE, gCOPY, gFONT, gPATT, gSAVEBIT, gUNLOADFONT, gUSE, INPUT, INSERT, LAST, LCLOSE, LOADM, LOPEN, MKDIR, MODIFY, NEXT, OPEN, OPENR, POSITION, PUT, RENAME, RMDIR, UNLOADM, UPDATE nebo USE) předřadíme klíčové slovo TRAP. Pokud tento příkaz vyvolá chybu, tak náš program bude přesto pokračovat a v proměnné ERR bude vrácen kód této chyby.

ONERR navesti::
ONERR OFF

Druhý způsob je pomocí bloku mezi příkazy ONERR a ONERR OFF. Pokud v tomto bloku dojde k chybě, provede OPL program skok na návěští, které bylo uvedeno za příkazem ONERR.

PROC chyba:
  ONERR chyba
  PRINT "Dělení nulou = "; 100/0
  PRINT "OK"
  GET
  ONERR OFF
  RETURN
  REM --- Zpracování chyby ---
  chyba::
  PRINT "CHYBA "; ERR$(ERR)
  GET	
ENDP


Nejčtenější

Tak bude vypadat letošní nejlevnější iPhone, zepředu připomíná desítku

Render chystaného LCD iPhonu s 6,1palcovým panelem ve společnosti menšího...

Uvedení nových iPhonů se blíží, jejich oficiální odhalení proběhne už za dva měsíce. Víme, že budou tři a alespoň z...

Blesková krádež. Zloději za 30 sekund vybílili obchod Applu

Blesková krádež v kalifornském Apple Storu

Skupina mužů za méně než minutu vykradla před očima zákazníků i personálu obchod Apple Store v kalifornském Fresnu....



Xiaomi pokračuje v dumpingových akcích. Redmi S2 bude za 300 korun

Nová prodejna mobilů v Olomouci přilákala stovky lidí

Agresivní marketing čínské značky v Česku pokračuje. Xiaomi otevírá třetí obchod a tradičně první den nabízí produkty s...

Recenze: Nokia 8 Sirocco je skutečně luxusní a má skvěle odladěný Android

Nokia 8 Sirocco

Firma HMD Global postupně rozšiřuje svou nabídku smartphonů Nokia i do vyšších pater. Prozatím tou nejlepší nokií,...

Novinka za 975 korun nahradí smartphone a nepotřebuje dotykový displej

JioPhone 2

Obyčejné mobily nejsou mrtvé. Právě naopak. Jestliže prodeje smartphonů stagnují, nebo na některých trzích dokonce...

Další z rubriky

Na dovolené se můžete seznámit i nespálit

Ilustrační snímek

Na dovolenou si bereme kde co, ovšem počítač/notebook často zůstává doma. Ten je na jedné straně prostředkem k...

Aplikace ukazovala otravující čísla. Data kradl antivir přímo z mobilů

Škodlivý kód Cooligan napadá zařízení s Androidem 4 a 5

Zajímavý model vymyslelo studio DU. Jedna jejich android aplikace ukazovala, kdo volá, včetně obtěžujících čísel...

Online randění pozastaveno. Facebook nechtěně odstřihl uživatele od Tinderu

Aplikace Tinder

Změna bezpečnostních nastavení Facebooku v reakci na nedávné skandály s úniky dat má celkem závažný důsledek pro ty,...

RODIČE ZNAJÍ: Takhle reálně vypadá rodinná dovolená!
RODIČE ZNAJÍ: Takhle reálně vypadá rodinná dovolená!

Z reklamního letáku cestovní společnosti se směje manželský pár sedící na úhledném plážovém lehátku. Před ním si společně hrají děti. A teď zpátky do reality, takhle rodinná dovolená většinou nevypadá.

Najdete na iDNES.cz