Hollywood is a multimedia-oriented programming language that can be used to create graphical applications very easily
@INCLUDE "Helpers.hws"
• HL.IsNil() Verifica se il valore passato è NIL • HL.ParseArgs() Effettua il parsing degli argomenti della riga di comando • HL.SafeNil() Resituisce la stringa "NIL" se il parametro passatto è NIL • HL.Swap() Scambia fra loro due valori
Function HL.IsNil(value);———————————————————————————————————————————————————————————————————————————————; Returns TRUE if <value> is NIL otherwise returns FALSE;-------------------------------------------------------------------------------; INPUT:; • value value to check against NIL;; OUTPUT:; • result TRUE if <value> is NIL, otherwise FALSE;------------------------------------------------------------------------------- If GetType(value) = #NIL Then Return(True) Else Return(False) EndFunction
If GetType(value) = #NIL Then Return(True) Else Return(False)
Local stringa1 = "" ; questa è una stringa vuotaLocal stringa2 = "ciao!" ; questa è un'altra stringa
Local risultato = "Il mio nome è " .. "Fabio"
DebugPrint("Il mio nome è " .. nome)
Function HL.SafeNil(value);———————————————————————————————————————————————————————————————————————————————; Returns the string 'NIL' if <value> is Nil, otherwise returns <value> without; modifications.;———————————————————————————————————————————————————————————————————————————————; INPUT; • value value to check against NIL;———————————————————————————————————————————————————————————————————————————————; OUTPUT; • Result 'NIL' if <value> is Nil, otherwise <value>;———————————————————————————————————————————————————————————————————————————————; NOTES; This func is useful for string concatenations where there is a risk that; the value to concatenate can be Nil, in this case the concatenation will raise; an error breaking the code execution.;; Example:; DebugPrint("Hello " .. b) ; In this case if <b> is Nil an error is raised; DebugPrint("Hello " .. HL.SafeNil(b)) ; No errors will be raised in case <b>; ; is Nil, at least you will get the; ; output: Hello NIL;------------------------------------------------------------------------------- If HL.IsNil(value) Return("NIL") Else Return(value) EndIf EndFunction
Function stampa_messaggio(messaggio) DebugPrint("Messaggio ricevuto:" .. messaggio)EndFunction
Function stampa_messaggio(messaggio) DebugPrint("Messaggio ricevuto:" .. HL.SafeNil(messaggio))EndFunction
Local numero = 12DebugPrint("Concatenare stringhe con numeri -->" .. numero)
>test -parametro1 ciao -parametro2 mondo
Local argomenti, conteggio = GetCommandLine()
DebugPrint(argomenti[0].arg, argomenti[0].param)DebugPrint(argomenti[1].arg, argomenti[1].param)
; Tabella classicaLocal classica1 = { "rosso", "verde", "giallo" }; equivale aLocal classica2 = {}classica2[0] = "rosso"classica2[1] = "verde"classica2[2] = "giallo"; Tabella indicizzata con stringheLocal computer1 = { cpu = "i5", clock = "2.26GHz", ram = "8Gb" }; che equivale a scrivereLocal computer2 = {}computer2["cpu"] = "i5"computer2["clock"] = "2.26GHz"computer2["ram"] = "8Gb"; che, ancora, equivale a scriverecomputer3 = {}computer3.cpu = "i5"computer3.clock = "2.26GHz"computer3.ram = "8Gb"
DebugPrint(computer1.cpu); Stamperà su console esattamente <i5>
Function HL.ParseArgs(CaseSensitive);———————————————————————————————————————————————————————————————————————————————; Parse command line arguments and return a table indexed by the argument and; with the value equal to the parameter.; Case sensitive is switched by default to TRUE, set to FALSE to parse arguments; and parameters without case distinctions.;———————————————————————————————————————————————————————————————————————————————; INPUT; • CaseSensitive Optional switch to activate (True) case sensitive argument; recognition, defaults to True.;———————————————————————————————————————————————————————————————————————————————; OUTPUT; • Result A table indexed with the argument and with the value equal; to the argument value.;———————————————————————————————————————————————————————————————————————————————; NOTES; Example:; shell>MyHWTest -test1 10 -test2 hello;; HL.ParseArgs() will return the following table:; result = { test1 = '10',; test2 = 'hello' };------------------------------------------------------------------------------- If HL.IsNil(CaseSensitive) Then CaseSensitive = False Local Result = {} Local Args, ArgsCount = GetCommandLine() Local index, value = NextItem(Args) While GetType(index) <> #NIL If Not(CaseSensitive) Result[value.arg] = value.param Else Result[LowerStr(value.arg)] = LowerStr(value.param) EndIf index, value = NextItem(Args, index) Wend Return(Result)EndFunction
If HL.IsNil(CaseSensitive) Then CaseSensitive = False
Local Result = {}
Local Args, ArgsCount = GetCommandLine()
Local index, value = NextItem(Args) While GetType(index) <> #NIL
If Not(CaseSensitive) Result[value.arg] = value.param Else Result[LowerStr(value.arg)] = LowerStr(value.param) EndIf
Result[argomento_riga_di_comando] = valore_argomento_riga_di_comando
index, value = NextItem(Args, index)
Wend
Return(Result)
...Local arguments = HL.ParseArgs()If GetType(RawGet(arguments, "image")) <> #NIL Then load_imageIf GetType(RawGet(arguments, "fullscreen")) <> #NIL Then set_fullscreenIf GetType(RawGet(arguments, "quitkey")) <> #NIL Then set_quitkey...Function load_image() LoadBrush(1, arguments.image) ...EndFunction