Mòdul:SimpleArgs/ús

De Viquipèdia
Salta a la navegació Salta a la cerca

Ús[modifica]

Utilitzat per altres mòduls per a comprovació de paràmetres passats.

Per traduir o revisar la traducció al vostre idioma del mòdul, editeu amb compte Data:I18n/SimpleArgs.tab.

Funcions[modifica]

  • Arg(ument)s: arguments o llista de paràmetres del frame actual.
  • Par(armeter)Id(entificator): nom/s o l'ordre del paràmetre.
  • La marca * indica que és un paràmetre opcional. Si no es vol assignar un valor opcional no correlatiu es pot assignar el valor de nil.
Exemple: funció_de_número (Args, ParId, LimInf*, LimSup*) -> funció_de_número (args, 1, nil, 12), comprovarà que el número no sigui major de 12.
Òbviament seria correcte -> funció_de_número (args, 1), sense cap comprovació dels valors del números.
  • Str(ing): Cadena.
  • Num(ber): Número.
  • Int(teger): Enter.
  • Pos(itive)Num/Int: Número/enter positiu.
  • ZeroOrPosNum/Int: Zero o número/enter positiu.
  • Char(acter): Caràcter.
  • Tab(ble): Taula.

Principal[modifica]

  • GetArgs (frame, HandleError*, SameSize*) - Retorna els arguments i el seu número.
Si HandleError == true -> Error.handle = true
Si SameSize == true -> Error.samesize = true

Manipulació dels errors[modifica]

  • Error = {
handle = false,
yes = false,
msg = ,
samesize = false,
}
  • MsgError (S)

Si handle = false, quan es produeix un error es presenta un error de lua. Així: Error Lua: error.

Si handle = true, és el qui fa el mòdul qui haurà de fer un return amb l'error, així return MsgError(), retornant el tipus de lletra d'un error de lua. Així: error. Es fa una comprovació paràmetre a paràmetre si no es detecta un error.

  • L'error s'anota a una variable.
  • S'anota que hi ha hagut un error i així no es comprova més errors en la resta de paràmetres.
  • Al final de la comprovació i entrada de variables el programador hauria d'escriure: if SA.Error.yes then return SA.MsgError() end (on SA està definida com local SA = require "Module:SimpleArgs").

Si handle = true i samesize = true llavors el missatge retornat serà amb lletra en negreta i de color vermell. Així: error.

Vegeu els exemples

Altres[modifica]

  • p.ParamsSep = '/' - Variable usada per a la següent funció
  • ConcatParams (tab) - S'utilitza quan un paràmetre té més d'un nom per al mateix paràmetre.

Comprovació de números[modifica]

Retornen el número N si aquest número és correcte, en cas contrari retornen un missatge d'error.

  • CheckNum (N, ParId, LimInf, LimSup)
  • CheckNumIsInt (N, ParId, LimInf*, LimSup*)
  • CheckNumIsPos (N, ParId, LimInf*, LimSup*)
  • CheckNumIsZeroOrPos (N, ParId, LimSup*)

Comprovació de si les cadenes són números[modifica]

Retornen un número si la cadena és un número correcte, en cas contrari retornen un missatge d'error.

  • CheckSIsNum (S, ParId, LimInf*, LimSup*)
  • CheckSIsInt (S, ParId, LimInf*, LimSup*)
  • CheckSIsPosInt (S, ParId, LimInf*, LimSup*)
  • CheckSIsZeroOrPosInt (S, ParId, LimSup*)

Valors dels paràmetres específics del frame[modifica]

Les funcions amb una R inicial indiquen que el paràmetre és necessari. Retornen el valor del tipus demanat del paràmetre si és correcte, en cas contrari retornen un missatge d'error.

Mireu els exemples de Mòdul:SimpleArgs/Tests/SVals

Cadenes[modifica]

  • Str_Par (Args, ParId, Default*)
  • RStr_Par (Args, ParId, OKEmpty*)
  • Char_Par (Args, ParId, Pattern, Default*)
  • RChar_Par (Args, ParId, Pattern)
  • NulOrWhitespace_Par (Args, ParId)
  • StrChkTab_Par (Args, ParId, Tab, CaseSens*, Default*)
  • RStrChkTab_Par (Args, ParId, Tab, CaseSens*)
  • StrIdxChkTab_Par (Args, ParId, Tab, CaseSens*, Default*)
  • RStrIdxChkTab_Par (Args, ParId, Tab, CaseSens*)

Números[modifica]

  • Num_Par (Args, ParId, Default*, LimInf*, LimSup*)
  • RNum_Par (Args, ParId, LimInf*, LimSup*)
  • PosNum_Par (Args, ParId, Default*, LimInf*, LimSup*)
  • RPosNum_Par (Args, ParId, LimInf*, LimSup*)
  • ZeroOrPosNum_Par (Args, ParId, Default*, LimInf*, LimSup*)
  • RZeroOrPosNum_Par (Args, ParId, LimInf*, LimSup*)
  • Int_Par (Args, ParId, Default*, LimInf*, LimSup*)
  • RInt_Par (Args, ParId, LimInf*, LimSup*)
  • PosInt_Par (Args, ParId, Default*, LimInf*, LimSup*)
  • RPosInt_Par (Args, ParId, LimInf*, LimSup*)
  • ZeroOrPosInt_Par (Args, ParId, Default*, LimSup*)
  • RZeroOrPosInt_Par (Args, ParId, LimSup*)

Booleà[modifica]

  • Bool_Par (Args, ParId, Default*)
  • RBool_Par (Args, ParId, Default*)

Índex d'una llista[modifica]

  • StrIdxChkTab (Args, ParId, CaseSens, Default, ...)
  • RStrIdxChkTab (Args, ParId, CaseSens, ...)
  • StrIdxChkTabE (Args, ParId, CaseSens, Default, ...)
  • RStrIdxChkTabE (Args, ParId, CaseSens, ...)

Taules de cadenes o números[modifica]

MinItemNum i MaxItemNum, indiquen el mínim i el màxim d'elements inserits en la taula.

Quan algun dels valors no estigui assignat s'actuarà segons OnEmpty: 0: S'inclourà. 1: No s'inclourà. 2. Activarà un error i el seu missatge.

D'un paràmetre[modifica]

Per al mateix paràmetre amb els elements separats per Sep. Exemple, amb "Sep" = ":" i el paràmetre = "12 : 1 : 1,3" retorna {12, 1, 1.3}

  • StrTab_1Par (Args, ParId, Sep, MinItemNum*, MaxItemNum*, OnEmpty*)
  • NumTab_1Par (Args, ParId, Sep, MinItemNum*, MaxItemNum*, LimInf*, LimSup*, OnEmpty*)
  • PosNumTab_1Par (Args, ParId, Sep, MinItemNum*, MaxItemNum*, LimInf*, LimSup*, OnEmpty*)
  • ZeroOrPosNumTab_1Par (Args, ParId, Sep, MinItemNum*, MaxItemNum*, LimInf*, LimSup*, OnEmpty*)
  • IntTab_1Par (Args, ParId, Sep, MinItemNum*, MaxItemNum*, LimInf*, LimSup*, OnEmpty*)
  • PosIntTab_1Par (Args, ParId, Sep, MinItemNum*, MaxItemNum*, LimInf*, LimSup*, OnEmpty*)
  • ZeroOrPosIntTab_1Par (Args, ParId, Sep, MinItemNum*, MaxItemNum*, LimInf*, LimSup*, OnEmpty*)
De varis paràmetres[modifica]

Els paràmetres poden ser:

  • Un número, llavors prendrà les assignacions del paràmetre actual fins a l'últim paràmetre.
  • Si és una cadena, aquesta haurà de contenir un $d que serà substituït per un enter correlatiu (a partir de l'1) fins que no es trobi cap paràmetre. Exemple: 'para $d', buscarà 'para 1', 'para 2', etc.
  • Si és una taula, es farà la mateixa cerca que l'anterior punt per cadascun dels valors. Exemple: {'para $d', param $d}, buscarà 'para 1' i 'param 1', després 'para 2' i 'param 2', etc.

Les funcions:

  • StrTab_NPar (Args, NArgs, ParId, MinItemNum*, MaxItemNum*, OnEmpty*)
  • NumTab_NPar (Args, NArgs, ParId, MinItemNum*, MaxItemNum*, LimInf*, LimSup*, OnEmpty*)
  • PosNumTab_NPar (Args, NArgs, ParId, MinItemNum*, MaxItemNum*, LimInf*, LimSup*, OnEmpty*)
  • ZeroOrPosNumTab_NPar (Args, NArgs, ParId, MinItemNum*, MaxItemNum*, LimInf*, LimSup*, OnEmpty*)
  • IntTab_NPar (Args, NArgs, ParId, MinItemNum*, MaxItemNum*, LimInf*, LimSup*, OnEmpty*)
  • PosIntTab_NPar (Args, NArgs, ParId, MinItemNum*, MaxItemNum*, LimInf*, LimSup*, OnEmpty*)
  • ZeroOrPosIntTab_NPar (Args, NArgs, ParId, MinItemNum*, MaxItemNum*, LimInf*, LimSup*, OnEmpty*)

Mireu els exemples de Mòdul:SimpleArgs/Tests/SVals