Premium

Získejte všechny články mimořádně
jen za 49 Kč/3 měsíce

Úvod do jazyka OPL (8)

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ší

Ukradené auto s AirTagem si našel, ale od policie dostal vynadáno

4. května 2024  7:02

Vyjít ráno před dům a nenajít tam svůj vůz je noční můrou každého majitele. Do takové...

O2 mění identitu. Vrací se 26 let starý legendární slogan předchůdce

30. dubna 2024  14:13

Operátor O2 se bude prezentovat trochu jinak než doteď. Změna je to spíš evoluční, ale rozdílů si...

{NADPIS reklamního článku dlouhý přes dva řádky}

{POPISEK reklamního článku, také dlouhý přes dva a možná dokonce až tři řádky, končící na tři tečky...}

Nový vědecký objev zdvojnásobí životnost baterií. Klíč je v nabíjení

4. května 2024

Premium Nový způsob nabíjení lithium-iontových baterií může podle studie německých vědců zdvojnásobit...

Továrny na iPhony zejí prázdnotou, Apple z nich utekl

7. května 2024

Čínské továrny Foxconnu, kde se ještě donedávna vyráběly iPhony, nyní připomínají „města duchů“....

{NADPIS reklamního článku dlouhý přes dva řádky}

{POPISEK reklamního článku, také dlouhý přes dva a možná dokonce až tři řádky, končící na tři tečky...}

Umělá inteligence na nových smartphonech od Huaweie svléká lidi

5. května 2024  7:02

Na poli smartphonů je současným trendem implementace umělé inteligence. Ta nabízí stále širší...

Tento levný tarif T-Mobilu nemá díky ceně na českém trhu konkurenci

8. května 2024

U T-Mobilu jde již o jakousi tradici, že s příchodem nového měsíce obmění svou akviziční nabídku....

Google spouští v Česku svůj obchod. Oficiálně tu začal prodávat Pixely

7. května 2024

S představením nového smartphonu Google Pixel 8a přichází pro české zákazníky ještě mnohem...

Sony nekončí. Nový smartphone však bude podobný všem ostatním

7. května 2024  7:02

Sony přes nízké prodeje se smartphony nekončí a chystá novinku, které bychom se měli dočkat v...

Továrny na iPhony zejí prázdnotou, Apple z nich utekl

7. května 2024

Čínské továrny Foxconnu, kde se ještě donedávna vyráběly iPhony, nyní připomínají „města duchů“....

V 59 letech zemřela herečka Simona Postlerová, ještě v sobotu zkoušela

Zemřela divadelní a filmová herečka Simona Postlerová, bylo jí 59 let. Zprávu o úmrtí potvrdil nadační fond Dvojka...

Dara Rolins je po další plastice. Kritiku fanoušků nechápe, cítí se svěží

Zpěvačka Dara Rolins (51) se na čas stáhla z veřejného života. V tom období prodělala „estetický zákrok“ a na sociální...

Titěrné sukně i míčky na podpatcích. Zendaya vzkřísila trend tenniscore

S nadsázkou bychom mohli říct, že největší tenisovou událostí tohoto roku je premiéra snímku Rivalové. Aspoň co se módy...

Zpěvačka Tereza Kerndlová měla autonehodu. Poslala vzkaz ze záchranky

Tereza Kerndlová (37) a její manžel René Mayer (53) měli v úterý ráno autonehodu. Na mokré vozovce do nich zezadu...

První světová válka zničila část Francie natolik, že tu stále řádí smrt

Řídkým rozvolněným lesem pokrytá pahorkatina u francouzského Soissons, Compiégne, Lens či Cambrai přirozeně svádí k...