RUNEX

RUNEX

Akcia RUN


 

Funkcia

Akcia umožňuje odštartovať externý program.

Deklarácia

RUN "meno programu" [HIDE] SYNC/ASYNC [paramExpr_Str] [TIMEOUT timeOutExprStr_Int]

 

 

alebo

 

intIdent_Int := RUN "meno programu" [HIDE] SYNC [paramExpr_Str] [TIMEOUT timeOutExpr_Int]

 

 

 

 

RUNEX _toExec [HIDE] SYNC/ASYNC [paramExpr_Str] [TIMEOUT timeOutExprStr_Int]

 

 

alebo

 

intIdent_Int := RUNEX _toExec [HIDE] SYNC [paramExpr_Str] [TIMEOUT timeOutExpr_Int]

 

Parametre

 

"meno programu"

in

Meno spustiteľného programu (voliteľne v úvodzovkách).

intIdent_Int

out

Identifikátor typu Int - návratový kód programu.

HIDE

in

Nepovinné kľúčové slovo - nezobrazenie (skrytie) okna štartovaného programu.

SYNC

in

Synchrónne spustenie programu (čakanie na ukončenie).

ASYNC

in

Asynchrónne spustenie programu.

paramExpr_Str

in

Výraz typu Text - parametre spusteného programu.

TIMEOUT timeoutExpr_Int

in

Výraz typu Int - maximálny čas behu programu v sekundách.

_toExec

in

Identifikátor typu text.

 

Popis

Akcia RUN odštartuje program daný textovým reťazcom "meno programu". Akcia RUNEX odštartuje program daný hodnotou identifikátora typu text _toExec.
Pri prvom variante je možné špecifikovať, či bude program spustený synchrónne (SYNC) alebo asynchrónne (ASYNC). Druhý variant je vždy synchrónny. Po skončení programu je jeho návratový kód priradený do identifikátora intIdent_Int.

Ak je maximálny čas behu programu ohraničený kľúčovým slovom TIMEOUT a program neskončí v časovom limite, bude násilne ukončený a návratová hodnota (v prvom prípade) nadobudne hodnotu _ERR_TIME_OUT.

V niektorých prípadoch je potrebné, aby meno programu vzniklo na základe textových operácií. Tu je vhodné použiť akciu RUNEX, ktorá štartuje program daný hodnotou textového identifikátora _toExec.
Rovnaký efekt dosiahneme akciou RUN, ak ako meno programu bude prázdny textový reťazec a celý príkaz sa uvedie ako parameter pomocou výrazu paramExpr_Str (viď. príklad).

Ak je akcia použitá vo variante s návratovým kódom a nepodarilo sa spustiť program, návratový kód (intIdent_Int) bude nastavený na neplatnú hodnotu.

Poznámka:
Pre OpenVMS len asynchrónne - bez parametrov.

 

Príklad

Nasledujúci príklad kopíruje súbor d:\d2000.v70\prefix\sqlback\syscfg.db do adresára c:\archiv pomocou štandardných prostriedkov operačného systému (shell spustí príkaz copy).

 

; Kopírovanie súboru ; Zdrojový súbor TEXT _copySrc := "d:\d2000.v70\prefix\sqlback\syscfg.db" ; Cieľový adresár TEXT _copyDst := " c:\archiv" ; Parametre pre príkaz copy TEXT _switch := "/Y " ; Návratový kód INT _ret _ret := RUN "cmd /C copy" SYNC _switch + _copySrc + _copyDst ; alebo celý príkaz zadaný ako výraz ; _ret := RUN "" SYNC "cmd /C copy " + _switch + _copySrc + _copyDst IF _ret # _ERR_NO_ERROR THEN ; chyba ENDIF END

 


Súvisiace stránky:

Akcie v skriptoch