Premium

Získejte všechny články
jen za 89 Kč/měsíc

Úvod do jazyka OPL (12)

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

Zadávání času

dTIME promenna&, vyzva$, vlastnosti%, min&, max&

Příkaz dTIME slouží k definování řádku, na kterém bude možné zadat časový údaj. Po 32bitové proměnné, ve které je údaj o čase uložen jako počet vteřin od půlnoci, následuje text výzvy, 16bitová proměnná udávající vlastnosti a na konci řádku opět minimální a maximální hodnota.

Chování příkazu dTIME je možné ovlivňovat konstantami KDTimeWithSeconds% (čas včetně vteřin), KDTimeDuration% (zadáváme délku v hodinách a minutách), KDTimeNoHours% (bez hodin) a KDTime24Hour% (24hodinový cyklus i u počítačů s jiným lokálním nastavením), které je možno kombinovat na místě proměnné pro uvedení vlastností. Podívejte se na následující příklad:

INCLUDE "Const.oph"

PROC cas:
  LOCAL a&, b&, c&, d&, e&, f&
  dINIT "Čas..."
  dTIME a&, "Bez modifikátoru", 0, 0, 86399
  dTIME b&, "Sekundy", KDTimeWithSeconds%, 0, 86399
  dTIME c&, "Délka 1-8h", KDTimeDuration%, 1*3600, 8*3600-1
  dTIME d&, "Bez hodin", KDTimeNoHours%, 0, 86399
  dTIME e&, "24 hod.", KDTime24Hour%, 0, 86399
  dTIME f&, "Délka bez hodin", KDTimeDuration%+KDTimeNoHours%, 0, 86399
  DIALOG
ENDP

Výběr možnosti ze seznamu

dCHOICE promenna%, vyzva$, moznosti$

Příkaz dCHOICE slouží k výběru jedné možnosti ze seznamu. Po 16bitové proměnné, která označuje řádek seznamu počínaje od jedné, následuje text výzvy. Třetím parametrem je text, ve kterém jsou čárkami odděleny jednotlivé možnosti. Počet možností ani jejich délka nejsou omezeny.

Možnosti jednoho příkazu dCHOICE je možné uvést i na více řádcích. V takovém případě ukončíme seznam znakem čárka, za kterým následují tři tečky a na dalším řádku uvedeme příkaz dCHOICE znovu se stejnou proměnnou, podobně jako v následujícím příkladu:

PROC vyber:
  LOCAL i%
  dINIT "Vyberte si"
  dCHOICE i%, "Možnost", "První,Druhá,Třetí,..."
  dCHOICE i%, "", "Čtvrtá,Pátá,Šestá,..."
  dCHOICE i%, "", "Sedmá,Osmá,Devátá"
  IF DIALOG : PRINT "i%="; i% : GET : ENDIF
ENDP

Jméno souboru

dFILE jmeno$, vyzva$, vlastnosti%

K výběru jména souboru slouží příkaz dFILE. Za příkazem následuje řetězcová proměnná (délky KDFileNameLen%), která obsahuje počáteční jméno souboru nebo prázdný text a do které bude uloženo nové jméno souboru. Následuje text výzvy a proměnná upřesňující chování příkazu. V textu výzvy příkazu dFILE musíme čárkou oddělit texty pro řádek s výběrem souboru, adresáře a disku (nebo jen pro výběr adresáře a disku, použijeme-li na řádku konstantu KDFileFoldersOnly%). V souboru CONST.OPH jsou definovány konstanty, které je možné sčítat pro dosažení žádoucího chování příkazu dFILE.

KDFileEditBox% je nejdůležitější z těchto konstant ovlivňujících chování příkazu dFILE. Pokud ji neuvedeme, bude možné vybírat pouze existující soubory; použijeme-li ji, tak bude možné jméno souboru na řádku editovat.

Chceme-li mít možnost vybírat i adresáře, přičteme k proměnné s vlastnostmi konstantu KDFileAllowFolders% a pokud si přejeme jen adresáře, tak konstantu KDFileFoldersOnly%.

Přičtení konstanty KDFileEditorDisallowExisting% nedovolí zadat jméno existujícího souboru. Konstanta KDFileEditorQueryExisting% určí, že zadáme-li do políčka jméno existujícího souboru, zobrazí se dotaz, zda si jej přejeme přepsat. Obě tyto konstanty mají smysl pouze u editovatelného jména souboru.

Doplněním konstant KDFileAllowNullStrings% a KDFileAllowWildCards% umožňujeme uživateli zadat jako jméno souboru prázdný text nebo zástupné znaky jmen souborů.

Za normálních okolností není možné zadat jméno souboru, který je v adresáři \System nebo v paměti ROM. Toto chování změníme použitím konstant KDFileSelectorWithRom% a KDFileSelectorWithSystem%.

Pro výběr existujícího souboru ke čtení uvádíme na řádku většinou hodnotu 0. Pro volbu existujícího adresáře, do kterého bude tento soubor kopírován, zvolíme upřesňující proměnnou jako KDFileFoldersOnly%+KDFileAllowFolders% a v textu výzvy uvedeme jen text pro jméno adresáře a disk. Sečtením vhodných konstant můžeme chování příkazu dFILE v široké míře přizpůsobit svým potřebám. Prohlédněte si jednoduchý příklad programu, který umožní prohlédnout si soubory v paměti ROM (disk Z) a zkopírovat je na disk:

INCLUDE "Const.oph"

PROC kopiezrom:
  LOCAL s$(KDFileNameLen%), cil$(KDFileNameLen%)
  s$="Z:\System\" : cil$="C:\Documents\"
  dINIT "Kopie souboru z ROM"
  dTEXT "Zdrojový soubor...", ""
  dFILE s$, "Soubor,Adresář,Disk", KDFileSelectorWithRom%+KDFileSelectorWithSystem%
  dTEXT "Kam...", ""
  dFILE cil$, "Adresář,Disk", KDFileFoldersOnly%
  IF DIALOG
    TRAP COPY s$, cil$
    IF ERR=0
      ALERT("Úspěch")
    ELSE
      ALERT("Chyba", ERR$(ERR))
    ENDIF    
  ENDIF
ENDP

Mimo popsané parametry je příkaz dFILE možné doplnit i o možnost vybírat soubory pouze jednoho typu přidáním tří UID čísel jako parametrů. To však patří mezi pokročilá témata související s architekturou systému EPOC, kterými se tady zabývat nebudeme.

Témata: Li Na, počítač
  • Nejčtenější

Spotem s Trojanem na horách operátor popudil Poláky. Nerozuměli nadsázce

21. dubna 2024  8:01

Po dvojici Vojtěch Kotek a Lukáš Pavlásek, k níž později přibyl Jakub Kohák, vsadil T-Mobile ve...

Je to už spíš foťák s mobilem a opravdu se povedl. Test Xiaomi 14 Ultra

21. dubna 2024

Prémiový smartphone Xiaomi 14 Ultra působí mezi současnou nabídkou mobilů jako unikát. Jaký jiný...

{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...}

Toto zařízení mělo nahradit mobily. V recenzích se mu vysmáli

23. dubna 2024

Novinka s názvem Humane AI Pin se zdála být převratným zařízením. V mnoha ohledech měla nahradit...

Operátoři zahušťují pokrytí Česka signálem 5G. Máte ho doma? Podívejte se

20. dubna 2024

Premium V červenci to budou již čtyři roky, co byla v Česku spuštěna první komerční 5G síť. Zatímco v...

{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...}

Pošlete sportovní fotku a vyhrajte smartphone nebo dres Patrika Schicka

8. dubna 2024,  aktualizováno  18.4 13:04

Zachyťte na fotografii sportovní moment a vyhrajte úplnou novinku, smartphone vivo V40 SE s bohatou...

Vodafone hlásí výpadek, někteří zákazníci se nemohli dovolat

25. dubna 2024  10:03,  aktualizováno  10:15

Síť mobilního operátora Vodafone postihl ráno výpadek. Týkal se části zákazníků, kteří se...

Toto mohl být nevídaný smartphone. Myšlenku však nakonec poslali k vodě

25. dubna 2024

S takovým smartphonem bychom už nikdy nemuseli řešit, že se zpomaluje, nemá dostatek paměti či je...

Samsung má povedenou stylovku. Zkusí to s ní na trhu, kde se mu nedaří

24. dubna 2024

Samsung po velmi dlouhé době oprášil modelovou řadu Galaxy C a představil stylový smartphone se...

Toto zařízení mělo nahradit mobily. V recenzích se mu vysmáli

23. dubna 2024

Novinka s názvem Humane AI Pin se zdála být převratným zařízením. V mnoha ohledech měla nahradit...

Svatý grál na suchou kůží na nohou. Přečtěte si, co vám pomůže!
Svatý grál na suchou kůží na nohou. Přečtěte si, co vám pomůže!

30 uživatelů eMimina mělo možnost otestovat krém na nohy od Manufaktury z kolekce Louka. Pomohl vám na suchou a hrubou pokožku chodidel? Přečtěte...

Manželé Babišovi se rozcházejí, přejí si zachovat rodinnou harmonii

Podnikatel, předseda ANO a bývalý premiér Andrej Babiš (69) s manželkou Monikou (49) v pátek oznámili, že se...

Bývalý fitness trenér Kavalír zrušil asistovanou sebevraždu, manželka je těhotná

Bývalý fitness trenér Jan Kavalír (33) trpí osmým rokem amyotrofickou laterální sklerózou. 19. dubna tohoto roku měl ve...

Herečka Hunter Schaferová potvrdila románek se španělskou zpěvačkou

Americká herečka Hunter Schaferová potvrdila domněnky mnoha jejích fanoušků. A to sice, že před pěti lety opravdu...

Největší mýty o zubní hygieně, kvůli kterým si můžete zničit chrup

Možná si myslíte, že se v péči o zuby orientujete dost dobře, přesto v této oblasti stále ještě existuje spousta...

Tenistka Markéta Vondroušová se po necelých dvou letech manželství rozvádí

Sedmá hráčka světa a aktuální vítězka nejprestižnějšího turnaje světa Wimbledonu, tenistka Markéta Vondroušová (24), se...