Professional Documents
Culture Documents
ndice
Referencia de Gambas
Descripciones del Lenguaje. ndice Alfabtico del Lenguaje Componentes Libreras ndice del Lenguaje por Categoras ndice alfabtico del lenguaje
Tutoriales
Instalacin (Libreras necesarias) Lo m s b sico de !ambas Interfa" gr fica #arios Aplicaciones en $arios idiomas
Artculos Gambas
Diferencia entre #% Como escribir componentes Introduccin #isual a !ambas &Cmo puedo con$ertir mi pro'ecto #% a !ambas( &Cmo se )ace para* ( +rogramacin en ,-capas %ajo !ambas .n ejemplo de juego simple/ 01)e %is)a2 3jemplo de manejo de procesos/ 0!b+ing2 4tro ejemplo de colaboracin entre procesos/ 5!b+loticusDemo5
Asignacin
Asigna el valor de una expresin a uno de los siguientes elementos: Una variable local. Un parmetro de una funcin. Una variable global o de clase. Un elemento de una matriz. Una variable pblica de un objeto. Una propiedad de un objeto. Algunas instrucciones que devuelven valores pueden emplear tambin la sintaxis de asignacin EXEC! NEW! OPEN! RAISE! SHELL. EJEMPLO
iVal = 1972 Name = "[/de /!am"a#$" %O"&e'()P*+,e*(- = iVal 'C+lle'(i+.[#/e-$ = Name )))
EJEM
!O
'onstantes de 'adena para ser traducidas. B">E#(e ,*+!*ama e#(C m@- "ie.A"D &U##
#as constantes de cadena pueden contener los siguientes caracteres de escape CARACTER "E
ESCA E
E#$%&A!ENTE ASC%% '%r*+,-. '%r*+,/. '%r*+0. 'omillas 1arra %acia atrs '%r*+23xx.
E. E* E( E" EE EFF
4uede escribir una constante de cadena dividida en varias partes sucesivas. 4or ejemplo!
"Gam"a#" " e# " " e.Hme.+"
C)r6
Sinta'is
5evuelve el caracter cu6o cdigo A7'$$ es 'digo. 84recaucin9 Gambas utiliza U:;<= como codificacin interna! por lo que un caracter con cdigo ,>= o superior no tiene el mismo significado que en otras codificaciones! como $7? ==@0<,.
E(em)lo
Ejemplo PRIN0 C%*IB68D A P19LIC S19 9@((+.1JCli'KBD LIM X AS I.(e!e* 2OR X = 42 0O 127 PRIN0 C%*IBXDM NEX0 ENL
Constantes +redefinidas
Ti)os de datos
"stas constantes son devueltas por T*)eOf+ gb.&ull gb.1oolean gb.16te gb.7%ort gb.$nteger gb.#ong gb.7ingle gb.;loat gb.5ate gb.7tring gb.Aariant gb.?bject valor &U## valor 1oolean. valor 16te. valor 7%ort. valor $nteger. valor #ong. valor 7ingle. valor ;loat. valor 5ate. valor 7tring. valor Aariant. referencia ?bject.
gb (gb)
"sta clase esttica inclu6e todas las constantes bsicas de Gambas empleadas por un gran nmero de funciones.
Smbolos
"sta clase es esttica. Constantes Ascent Bi,Endian Binar* Boolean B*te Class Currenc* "ate "a* "escent "e-ice "irector* E'ec .ile .i'ed .loat .rida* General"ate GeneralNumber /our %nte,er %nternational !in0 !ittleEndian !on, !on,"ate !on,Time Medium"ate MediumTime Minute Monda* Mont1 Ne2!ine Null Ob(ect ercent i)e #uarter Read Saturda* Scientific Second S1ort S1ort"ate S1ortTime Sin,le Soc0et Standard Strin, Sunda* Tab Te't T1ursda* Tuesda* &ariant 3ednesda* 3ee0 3ee0"a* 3rite 4ear
Ti)os de arc1i-o
"stas constantes tiene uso en la funcin 7tat+.. gb.;ile gb.5evice gb.4ipe gb.7ocBet gb.#inB Arc%ivo normal Arc%ivo especial de dispositivo :uber)a con nombre Arc%ivo especial de 7ocBet "nlace simblico
gb.5irector6 'arpeta
Constantes de cadena
gb.&eC#in 'aracter de D&ueva #)neaD. "quivalente a '%r*+,/. e gb.:ab 'aracter de :abulacin. "quivalente a '%r*+0.
Ti)os de ordenaci5n
'onstantes empleadas en el mtodo 7ort de las Eatrices. gb.1inar6 ?rdenacin binaria. gb.:ext ?rdenacin A7'$$! no distingue ma6sculas de minsculas.
"as de la semana
"stas constantes son valores devueltos por la funcin FeeB5a6+.. gb.Eonda6 gb.:uesda6 gb.:%ursda6 gb.;rida6 gb.7aturda6 gb.7unda6 #unes Eartes Gueves Aiernes 7bado 5omingo
gb.Fednesda6 Eircoles
.ormatos miscelneos
gb.7tandard "mplee gb.General&umber para formatear nmeros 6 gb.General5ate para fec%as 6 %oras.
WHILE ))) WENL 9@'le '+. @.a '+m,*+"a'iH. de #alida al i.i'i+) BREAK
C4,1I,.3
7inta8is C4,1I,.3 7alta a la siguiente iteracin de un bucle.
E(em)lo
2OR I = 1 0O 13 I2 I = 1 0HEN PRIN0 "1.+"M CON0IN1E ENLI2 I2 I = 2 0HEN PRIN0 " L+#"M CON0IN1E ENLI2 PRIN0 IM NEX0 PRIN0 1.+ L+# 4 < 8 6 7 : 9 13
D4
7inta8is D4 ; <=IL3 38presin > 'omienza un bucle infinito delimitado por las instrucciones 5? ... #??4. 7i se especifica F3$#"! el bucle se detendr cuando la "xpresin sea falsa. 7i la expresin es falsa al comienzo! el bucle no se ejcuta ninguna vez.
E(em)lo
P19LIC S19 2+*mJO,e.BD LIM a AS I.(e!e* a = 1 LO WHILE a N= 13 PRIN0 "H+la M@.d+ "M a INC a LOOP ENL
?49
7inta8is ?49 #ariable @ 38presin 14 38presin ; 713+ 38presin > ... ,3A1 Lepite un bucle mientras se incrementa una variable. :enga en cuenta que la variable %a de ser &umrica! es decir! un b6te! un s%ort! un integer o un nmero real float o single. Una variable local. :enga en cuenta tambin que si la expresin inicial es ma6or que la final +para valores positivos de 7:"4.! o es menor que la final +para valores negativos.! el bucle nunca se ejecutar.
LIM I AS I.(e!e* 2OR I = 1 0O 23 S0EP 4 PRIN0 I 7 " "M NEX0 1 < 7 13 14 16 19
?49 3AC=
7inta8is ?49 3AC= #ariable I, 38presin * ,3A1 Lepite un bucle mientras se enumera un objeto. "xpresin debe ser una referencia a un objeto enumerable por ejemplo! una coleccin! o una matriz.
E(em)lo
93+3A1
Sinta'is
7inta8is 93+3A1 5a comienzo a una estructura de bucle delimitada por las instrucciones L"4"A: ... U&:$#. :enga en cuenta que el bucle repeat siempre se ejecuta al menos una vez! incluso si el valor indicado por U&:$# es falso inicialmente.
.,1IL
Sinta'is
7inta8is .,1IL 38presin ;inaliza un bucle delimitado por las instrucciones L"4"A: ... U&:$#. "l bucle se repite %asta que la "xpresin es cierta.
E(em)lo
P19LIC S19 2+*mJO,e.BD LIM I AS I.(e!e* REPEA0 PRIN0 0ime* 1N0IL 0ime* P 13 ENL
<=IL3
Sinta'is
7inta8is <=IL3 38presin 5a comienzo a un bucle delimitado por las instrucciones F3$#" ... F"&5. "l bucle se repite mientras la "xpresin sea cierta. 7i la expresin es falsa al inicio! el bucle nunca se ejecuta. #a estructura 5? F3$#" ... #??4 es equivalente.
E(em)lo
P19LIC S19 2+*mJO,e.BD LIM a AS I.(e!e* a = 1 WHILE a N= 13 PRIN0 "H+la M@.d+ "M a INC a WENL ENL
!414
7inta8is !414 3tiCueta 7alta a una etiqueta declarada en otro punto de la funcin.
D.I1
7inta8is D.I1 ;inaliza un programa inmediatamente. :odas las ventanas se cerrarn! 6 todo se liberar lo mejor posible.
931.9,
7inta8is 931.9, ; 38presin > 7ale de un procedimiento o funcin devolviendo el valor "xpresin. 7i sale de un procedimiento! no puede especificar ninguna "xpresin. 7i sale de una funcin! 6 no se especifica la "xpresin! el valor devuelto es el valor por defecto asociado al tipo de dato devuelto por la funcin.
714+
7inta8is 714+ 5etiene el programa 6 lanza el depurador! del mismo modo que un punto de interrupcin en la l)nea actual. "sta instruccin no %ace nada si el programa no est siendo depurado.
E(em)lo
<I1=
Sinta'is
7inta8is <I1= 4bjeto ... 3,D <I1= "ntre las instrucciones F$:3 6 "&5 F$:3! una expresin que comience por un punto se refiere al objeto. 4uede imbricar las estructuras F$:3 ... "&5 F$:3.
WI0H %9@((+. )0eF( = "Ca.'ela*" ENL WI0H Re# eS@iTale.(e a %9@((+.)0eF( = "Ca.'ela*"
C)oose
7inta8is Valor @ C)oose (Eleccin / Resultado #1 / Resultado #2 ; / ... > ) "sta funcin devuelve el valor de uno de sus argumentos Lesultado Ji ! de acuerdo con el valor de "leccin. 7i "leccin es ,! se devuelve Lesultado J,. 7i "leccin es >! se devuelve Lesultado J>! 6 as) en adelante... 7i "leccin es menor o igual a cero! o no %a6 valor especificado para el valor de "leccin! se devuelve &U##.
E(em)lo
IIf
7inta8is Value @ IIf ( %oolean / 1rue $alue ; / ?alse $alue > ) Value @ If ( %oolean / 1rue $alue ; / ?alse $alue > ) "valuate t%e 1oolean expression! and return :rue value if t%is expression is true! or ;alse value if t%is expression is false. $f ;alse value is not specified! it is assumed to be &U##. 1e careful9 'ontrar6 to $;! or t%e '(4erl V operator! bot% :rue value and ;alse value are evaluated! C%atever t%e value of 1oolean is.
E'am)le
R NeTe* d+ (%e +ll+Wi.! i. *eal '+de? "e'a@#e i( i# .+( (*a.#la(a"leA X = 7 PRIN0 "X+@ %aTe " 7 X 7 " me##a!e" 7 I BX NP 1? "#"D 7 " Wai(i.!)" X+@ %aTe 7 me##a!e# Wai(i.!)
E'am)le
I?
7inta8is I? Expresin ; E A,D I? F 49 I? G Expresin ... > 1=3, ... ; 3L73 I? Expresin ; E A,D I? F 49 I? G Expresin ... > 1=3, ... > ; 3L73 ... > 3,DI? "structura condicional de control. 7i utiliza varias expresiones de comprobacin separadas por la palabra clave AND IF! son evaluadas de izquierda a derec%a %asta que la primera con valor ;A#7" es alcanzada! 6 se considera entonces el conjunto con valor ;A#7". 7i todas las expresiones son :LU"! el conjunto se considera con valor :LU". 7i utiliza varias expresiones de comprobacin separadas por la palabra clave OR IF! son evaluadas de izquierda a derec%a %asta que la primera con valor :LU" es alcanzada! 6 se considera entonces el conjunto con valor :LU". 7i todas las expresiones son ;A#7"! el conjunto se considera con valor ;A#7". &o se puede mezclar las palabras clave AND IF 6 OR IF en una misma l)nea.
LIM K AS I.(e!e* 2OR K = 1 0O 13 I2 K N 8 OR I2 K P 8 0HEN PRIN0 KMM ELSE PRIN0 PRIN0 ">Lle!am+# al 8A" ENL I2 NEX0 PRIN0 1 2 4 < >Lle!am+# al 8A 6 7 : 9 13
73L3C1
s
7inta8is 73L3C1 ; CA73 > Expresin ; CA73 Expresin ; TO Expresin #2 > ; / ... > ... > ; CA73 Expresin ; 14 Expresin #2 > ; / ... > ... > ; E CA73 3L73 F D3?A.L1 G ... > 3,D 73L3C1 7elecciona una expresin a comparar! 6 ejecuta el cdigo encerrado en la expresin correspondiente 'A7". 7i no concuerda ninguna de las expresiones 'A7"! se ejecutar el cdigo dentro de la expresin 5";AU#: o 'A7" "#7". Una expresin 'A7" es una lista de valores simples o intervalos entre dos valores separados por la palabra clave :?.
E(em)lo
RLe#ea 'al'@la* @.a @.'iH. alea(+*ia) RRe,i(e @.a @.'iH. alea(+*ia mil Te'e# ,a*a R'+.+'e* '@a.(a# Te'e# a,a*e'e. l+# .Yme*+# R1? 2? 4? <? 8 + 6) LIM LIM LIM LIM LIM LIM LIM LIM F W a " ' d e AS AS AS AS AS AS AS AS I.(e!e* I.(e!e* I.(e!e* I.(e!e* I.(e!e* I.(e!e* I.(e!e* I.(e!e*
2OR F = 1 0O 1333 W = I.(BR.dB6D = 1D SELEC0 CASE W CASE 1 a = a = 1 CASE 2 " = " = 1 CASE 4 ' = ' = 1 CASE < d = d = 1 CASE 8 e = e = 1 CASE 6 = = 1 CASE ELSE PRIN0 ">E#(+ e# im,+#i"leA" ENL SELEC0 NEX0 PRIN0 a? "? '? d? e?
INP10 2ROM Redi*i!e la e.(*ada e#(C.da*) LINE INP10 Lee lZ.ea# de @. 2l@&+ de (eF(+) LOC/ LO OPEN O10P10 0O PRIN0 REAL SEE/ SEEK 1NLOC/ WRI0E 9l+S@ea @. 2l@&+ a"ie*(+) LeT@elTe la l+.!i(@d de @. 2l@&+) A"*e @. a*'%iT+ ,a*a le'(@*a + e#'*i(@*a - '*ea @. 2l@&+) Redi*i!e la #alida e#(C.da*) E#'*i"e eF,*e#i+.e# e. @. 2l@&+) Lee da(+# "i.a*i+# de @. 2l@&+) Cam"ia la ,+#i'iH. del ,@.(e*+ de @. 2l@&+) O"(ie.e la ,+#i'iH. del ,@.(e*+ de @. 2l@&+) Le#"l+S@ea @. 2l@&+ a"ie*(+) E#'*i"e da(+# "i.a*i+# e. @. 2l@&+)
CL473
Sinta'is
'ierra un arc%ivo abierto! u otro tipo de ;lujo. "sta instruccin nunca falla. 7i %a abierto un ;lujo de proceso! cerrarlo significa cerrar la entrada estndar! similar a pulsar C0RL=L en un terminal.
3of
Sinta'is
5evuelve :LU" si el puntero se encuentra al final de un flujo. 7i no se especifica ;lujo! se emplea la entrada estndar. Aase #$&" $&4U: para un ejemplo.
?L.7=
Sinta'is
;ija el contenido de un flujo que dispone de un buffer. 7i no se especifica el buffer! todos los flujos abiertos son fijados. ;ijar el contenido de un flujo abierto para lectura no tiene sentido.
I,+.1
Sinta'is
#ee el ;lujo! 6 convierte elementos separados por caracteres de espacio o retornos de carro con la funcin Aal antes de situar el valor en las variables. 7i no se especifica el flujo! se lee de la entrada estndar.
I,+.1 ?94B
S*nta'
Ledirects t%e default standard input to t%e stream 7tream. :%e default standard input is used b6 $&4U:! L"A5! #$&" $&4U:! "of and #of C%en 6ou donMt specif6 t%eir stream argument. 'alls to t%is instruction can be imbricated.
S*nta'
Ledirects t%e default standard input bacB to t%e value it %ad before t%e last redirection
LI,3 I,+.1
Sintaxis INE IN%#& [ ! 2l@&+ ' $ Va*ia"le
#ee una l)nea entera de texto del flujo indicado. 7i no se especifica un flujo! se utilizar la entrada estndar. &o emplee esta instruccin para leer desde arc%ivos binarios! 6a que perder los caracteres de retorno de carro. "mplee L"A5 en su lugar.
E(em)lo
RM@e#(*a @. a*'%iT+ e. la '+.#+la %2ile = OPEN N+m"*eA*'%iT+ 2OR INP10 WHILE NO0 E+ B%2ileD LINE INP10 [%2ile? 1.aLi.ea PRIN0 1.aLi.ea WENL CLOSE [%2ile
L4C:
Sinta'is
$ntenta dar de alta un bloqueo de sistema en un flujo abierto. 7i el flujo 6a est bloqueado por otro proceso! el comando falla.
Lof
Sintaxis L+.!i(@d = o" ( 2l@&+ AS S(*eam )
OPEN N+m"*eA*'%iT+ 2OR REAL AS [%2ile ))) PRIN0 "La l+.!i(@d del a*'%iT+ e#\ "M L+ B%2ileD
7i el flujo no es un arc%ivo! es decir! un objeto 4rocess o un 7ocBet! retorna el nmero de b6tes que pueden ser le)dos de una sola vez.
P19LIC S19 P*+'e##JReadBD LIM #9@ e* AS S(*i.!
PRIN0 "P@ed+ lee*\ "M L+ BLAS0D R Read (%em REAL [LAS0? #9@ e*? L+ BLAS0D ENL
4+3,
'
Sintaxis S(*eam = O%EN 2ile .ame FOR [ READ ] IN%#& $ [ )RI&E ] O#&%#& $ [ CREA&E ] A%%END $ [ )A&C$ $
?pens a file for reading! Criting! creating or appending data. :%e file must exist! unless t%e CREA&E Be6Cord is specified.
$f t%e CREA&E Be6Cord is specified! t%en t%e file is created! or cleared if it alread6 exists. $f t%e A%%END Be6Cord is specified! t%en t%e file pointer is moved to t%e end of file just after t%e file is opened. $f t%e READ or )RI&E Be6Cord are specified! t%en t%e input<output are not buffered. $f t%e IN%#& or O#&%#& Be6Cord are specified! t%en t%e input<output are buffered. $f t%e )A&C$ Be6Cord is specified! t%e file is Catc%ed b6 t%e interpreter + $f at least one b6te can be read from t%e file! t%en t%e event %andler 2ileJReadBD is called. + $f at least one b6te can be Critten into t%e file! t%en t%e event %andler 2ileJW*i(eBD is called.
$f t%e file is successfull6 opened! a stream object is returned to t%e variable 7tream.
Errors
"ESCR%
T%ON
:%e requested access to t%e file is not alloCed! or searc% permission is denied for one of t%e directories in t%e pat% prefix of pat%name! or t%e file did not exist 6et and Crite access to t%e parent director6 is not alloCed. ;ile name refers to a director6.
;ile or director6 ;ile name does not exist! or a director6 component in pat%name does not exist or is a does not exist +JH@. dangling s6mbolic linB. ?ut of memor6 +J,. :%e s6stem ran out of memor6.
5evice is full +J-I. ;ile name Cas to be created but t%e device containing ;ile name %as no room for t%e neC file. &ot a director6... +JH0. 76stem error... +JH>. A component used as a director6 in ;ile name is not! in fact! a director6. ?t%er possible s6stem errors :oo man6 s6mbolic linBs Cere encountered in resolving ;ile name. :%e process alread6 %as t%e maximum number of files open. :%e s6stem limit on t%e total number of open files %as been reac%ed. ;ile name refers to a device special file and no corresponding device exists. :%e named file is a named pipe and no process %as t%e file open for reading. ;ile name refers to a file on a read<onl6 files6stem and Crite access Cas requested.
E'am)le
;ile name refers to an executable image C%ic% is currentl6 being executed and Crite access Cas requested.
a (eF( ile (+ (%e #'*ee.
%2ile = OPEN "/e('/,a##Wd" 2OR INP10 WHILE NO0 E+ B%2ileD LINE INP10 [%2ile? #Li.e PRIN0 #Li.e WENL
E'am)le
R Wa('%i.! a #e*ial ,+*( LIM %2ile AS 2ile %2ile = OPEN "/deT/((-S3" 2OR REAL WRI0E WA0CH ))) P19LIC S19 2ileJReadBD LIM i9-(e AS 9-(e REAL [%2ile? i9-(e PRIN0 "G+( +.e "-(e\ "M i9-(e ENL
E'am)le
R Readi.! da(a
*+m a 9MP
+*ma( \
LIM %2ile AS 2ile LIM iLa(a AS I.(e!e* %2ile = OPEN "ima!e)"m," 2OR INP10 %2ile)9-(eO*de* = !")Li((leE.dia. ))) REAL [%2ile? iLa(a
4.1+.1 14
Sintaxis O#&%#& &O 2l@&+
Ledirige la salida estndar por defecto al flujo indicado. #a salida estndar por defecto se utiliza por parte de 4L$&: 6 FL$:" si no especifica el argumento de flujo. #as llamadas a esta funcin pueden imbricarse.
Sinta'is
+9I,1
Sinta'is
"scribe expresiones en el flujo. 7i no se especifica un flujo! se utilizar la salida estndar. #as expresiones se convierten en cadenas empleando la funcin 7tr*. 7i no %a6 un punto 6 coma despus de la expresin! se aOade un caracter de Dnueva l)neaD despus de la ltima expresin. 7i %a6 un punto 6 coma doble! se aOade un caracter de DespacioD entre las expresiones. 7i se utiliza una coma en lugar de un punto 6 coma! se aOade un caracter de tabulacin +cdigo 0 A7'$$. para separar las expresiones.
93AD
S*nta'
Sintaxis READ [ ! S(*eam ' $ Va*ia"le [ ' Le.!(% $ READ [ ! P+i.(e* ' $ Va*ia"le [ ' Le.!(% $
Leads t%e stream 7tream as binar6 data C%ose t6pe is given b6 t%e t6pe of t%e variable. :%e binar6 representation is t%e one used b6 t%e FL$:" instruction. $f t%e stream is not specified! t%en t%e standard input is used. $f Aariable is a string! 6ou can specif6 a lengt% t%at indicates t%e number of b6tes to read. $f t%e lengt% is negative! t%en +< #engt%. b6tes are read up to t%e end of stream. $f no lengt% is specified for a string! it is is read from t%e stream. :%e string t%en must %ave been Critten Cit% t%e FL$:" instruction. :%is instruction uses t%e b6te order of t%e stream to read t%e data. $f 6ou specif6 a 4ointer instead of a 7tream! t%en data Cill be read directl6 from t%e memor6 address specified b6 t%e pointer. $f 6ou tr6 to read at a forbidden memor6 address! 6ou Cill get an error. :%e interpreter ConMt cras%.
733:
S*nta'
5efines t%e position of t%e stream pointer! for t%e next read(Crite operation. $f 4osition is negative! t%en t%e stream pointer is moved relativel6 to t%e end of t%e file. :o move t%e stream pointer after t%e end of t%e file! 6ou must use t%e #of function.
E'am)le
R M+Te (+ (%e "e!i..i.! + SEE/ [%2ile? 3 R M+Te a (e* (%e e.d + (%e SEE/ [%2ile? L+ B[%2ileD
(%e ile
ile
R M+Te 133 "-(e# "e +*e (%e e.d + SEE/ [%2ile? 5133
(%e
ile
7eeI
Sinta'is
5evuelve el valor actual del puntero en el flujo indicado. "l valor devuelto es un entero largo. Euc%os tipos de flujos no disponen de un puntero 4rocess! 7ocBet! ...
.,L4C:
Sinta'is
<9I13
Sinta'is
)RI&E [ ! 2l@&+ ' $ EF,*e#iH. [ ' L+.!i(@d $ )RI&E [ ! P@.(e*+ ' $ EF,*e#iH. [ ' L+.!i(@d $
"scribe una expresin en un ;lujo usando su representacin binaria. 7i no se especifica el flujo! se emplea la salida estndar.
7i la "xpresin es una cadena! puede especificar la longitud que indica el nmero de b6tes a escribir. 7i no se especifica la longitud! ste se escribe en el flujo justo antes de la cadena de datos. "sta funcin emplea el orden de b6tes del flujo para leer datos. 7i especifica un puntero en lugar de un flujo! los datos sern escritos directamente en la direccin de memoria especificada por el puntero. 7i intenta escribir en una direccin de memoria pro%ibida! obtendr un error. "l intrprete no fallar.
?unciones Aritmticas
A"# LEC 2*a' INC I.( MaF Mi. S!. LeT@elTe el Tal+* a"#+l@(+ de @. .Yme*+) Le'*eme.(a @.a Ta*ia"le) LeT@elTe la ,a*(e .Yme*+) *a''i+.al de @.
I.'*eme.(a @.a Ta*ia"le) LeT@elTe la ,a*(e e.(e*a de @. .Yme*+) LeT@elTe el .Yme*+ ma-+*) LeT@elTe el .Yme*+ me.+*) LeT@elTe el #i!.+ de @. .Yme*+)
?unciones de Cadena
A#' C%*I I.S(* LCa#eI Le (I Le. L0*imI MidI LeT@elTe el 'Hdi!+ ASCII de @. 'a*C'(e* e. @.a 'ade.a) LeT@elTe @. 'a*C'(e* a ,a*(i* de #@ 'Hdi!+ ASCII) 9@#'a @.a 'ade.a de.(*+ de +(*a) C+.Tie*(e @.a 'ade.a a mi.Y#'@la#) LeT@elTe l+# ,*ime*+# 'a*a'(e*e# de @.a 'ade.a) LeT@elTe la l+.!i(@d de @.a 'ade.a) Elimi.a e#,a'i+# e. "la.'+ de la ,a*(e i.i'ial de @.a 'ade.a) LeT@elTe ,a*(e de @.a 'ade.a)
Re,la'eI Reem,laOa? de.(*+ de @.a 'ade.a? @.a #@"'ade.a ,+* +(*a) Ri!%(I RI.S(* LeT@elTe l+# Yl(im+# 'a*a'(e*e# de @.a 'ade.a) 9@#'a @.a 'ade.a de.(*+ de +(*a em,eOa.d+ ,+* #@
i.al) R0*imI S,a'eI S,li( S(*i.!I S@"#(I 0*imI 1Ca#eI Elimi.a e#,a'i+# e. "la.'+ de la ,a*(e @.a 'ade.a) LiTide @.a 'ade.a e. #@"'ade.a#) LeT@elTe la mi#ma 'ade.a '+.'a(e.ada Ta*ia# Te'e#) S@#(i(@-e 'ade.a# e. @. ,a(*H.) Elimi.a e#,a'i+# e. "la.'+ del 'ade.a) i.al de @.a i.al de
?unciones de Con$ersin
C9++l C9-(e CLa(e CI.( CL+.! C+.TI CS.! CS(* C+.Tie*(e @. Tal+* e. 9++lea.) C+.Tie*(e @. Tal+* e. 9-(e) C+.Tie*(e @. Tal+* e. La(e) C+.Tie*(e @. Tal+* e. I.(e!e*) C+.Tie*(e @. Tal+* e. L+.!) C+.Tie*(e @.a 'ade.a de @. &@e!+ de 'a*a'(e*e# a +(*+) C+.Tie*(e @. Tal+* e. Si.!le) C+.Tie*(e @. Tal+* e. S(*i.!)
LC+.TI C+.Tie*(e @.a 'ade.a del &@e!+ de 'a*a'(e*e# del #i#(ema a 1025: B&@e!+ de 'a*a'(e*e# de la i.(e* aO !*C i'aD) SC+.TI C+.Tie*(e @.a 'ade.a de#de el &@e!+ de 'a*a'(e*e# 1025: Bel em,lead+ e. la i.(e* aO !*C i'aD al &@e!+ de 'a*a'(e*e# del #i#(ema) S(*I Val C+.Tie*(e @. .Yme*+ + e'%a e. @.a 'ade.a) e'%a) C+.Tie*(e @.a 'ade.a e. @. .Yme*+ +
LeT@elTe la ,a*(e de %+*a de @. Tal+* La(e) LeT@elTe el .Yme*+ de #e!@.d+# (*a.#'@**id+# de#de S@e #e i.i'iH el ,*+!*ama) LeT@elTe el .Yme*+ de #ema.a de @. Tal+* La(e) LeT@elTe el .Yme*+ de dZa e. la #ema.a de @. Tal+* La(e) LeT@elTe el a`+ de @. Tal+* La(e)
?unciones de ?ormateo
9i.I HeFI 2+*ma(ea @. .Yme*+ e. "i.a*i+) e'%a) 2+*ma(ea @. .Yme*+ e. %eFade'imal) 2+*ma(I 2+*ma(ea @. .Yme*+ +
C+m,*@e"a #i @.a 'ade.a '+.(ie.e #Hl+ dZ!i(+# %eFade'imale#) C+m,*@e"a #i @.a 'ade.a '+.(ie.e #Hl+ le(*a# mi.Y#'@la#) C+m,*@e"a #i @.a 'ade.a '+.(ie.e #Hl+ 'a*a'(e*e# .+ al a.@ma*i' C+m,*@e"a #i @.a 'ade.a '+.(ie.e #Hl+ 'a*a'(e*e# de e#,a'i+) C+m,*@e"a #i @.a 'ade.a '+.(ie.e #Hl+ le(*a# ma-Y#'@la#)
I#I.(e!e* LeT@elTe #i @.a eF,*e#iH. ,e*(e.e'e al (i,+ I.(e!e*) I#L+.! I#N@ll I#N@m"e* I#O"&e'( I#S%+*( I#Si.!le I#S(*i.! 0-,eO LeT@elTe #i @.a eF,*e#iH. ,e*(e.e'e al (i,+ L+.!) LeT@elTe #i @.a eF,*e#iH. e# .@la BN1LLD) LeT@elTe #i @.a eF,*e#iH. e# @. .Yme*+) LeT@elTe #i @.a eF,*e#iH. ,e*(e.e'e al (i,+ O"&e'() LeT@elTe #i @.a eF,*e#iH. ,e*(e.e'e al (i,+ S%+*() LeT@elTe #i @.a eF,*e#iH. ,e*(e.e'e al (i,+ Si.!le) LeT@elTe #i @.a eF,*e#iH. ,e*(e.e'e al (i,+ S(*i.!) LeT@elTe el (i,+ de Tal+* de @.a eF,*e#iH.)
?unciones 1rigonomtricas
AC+# A.! ASi. A0a. Cal'@la el a*'+'+#e.+ de @. .Yme*+) Cal'@la la '++*de.ada "C.!@l+ ,+la*" ,a*a d+# '++*de.ada# 'a*(e#ia.a#) Cal'@la el el a*'+#e.+ de @. .Yme*+) Cal'@la la a*'+(a.!e.(e de @. .Yme*+) AC+#% Cal'@la el a*'+'+#e.+ %i,e*"Hli'+ de @. .Yme*+)
ASi.% Cal'@la el a*'+#e.+ %i,e*"Hli'+ de @. .Yme*+) A0a.2 Cal'@la la a*'+(a.!e.(e de d+# .Yme*+#) A0a.% Cal'@la la a*'+(a.!e.(e %i,e*"Hli'a de @. .Yme*+) C+# C+#% Le! H-, Ma! Pi Si. Si.% 0a. 0a.% Rad Cal'@la el '+#e.+ de @. C.!@l+) Cal'@la el '+#e.+ %i,e*"Hli'+ de @. C.!@l+) C+.Tie*(e *adia.e# a !*ad+#) Cal'@la la %i,+(e.@#a de @. (*iC.!@l+) Cal'@la la '++*de.ada "di#(a.'ia ,+la*" ,a*a d+# '++*de.ada# 'a*(e#ia.a#) LeT@elTe b + @. mYl(i,l+ de b) Cal'@la el #e.+ de @. C.!@l+) Cal'@la el #e.+ %i,e*"Hli'+ de @. C.!@l+) Cal'@la la (a.!e.(e de @. C.!@l+) Cal'@la la (a.!e.(e %i,e*"Hli'a de @. C.!@l+) C+.Tie*(e !*ad+# e. *adia.e#)
EF,13 13cF
!estin de errores
CA0CH Ca,(@*a @. e**+* e. @.a @.'iH.)
M@e#(*a e. '+.#+la @. me.#a&e de de,@*a'iH.) I.di'a #i +'@**iH. @. e**+*? + m@e#(*a @. me.#a&e de e**+*) La 'la#e e#(C(i'a E**+*) @.'iH.? i.'l@#+ #i
!estin de 3$entos
EVEN0 RAISE Le'la*a @. eTe.(+) Li#,a*a @. eTe.(+)
O"&e'()A((a E.laOa @. eTe.(+ '+. #@ !e#(+* de eTe.(+#) '% O"&e'()Le(a Se,a*a @. eTe.(+ de #@ !e#(+* de eTe.(+#) '% S0OP EVEN0 WAI0 Ca.'ela @. eTe.(+) Llama al laO+ de eTe.(+# %a#(a S@e %a-a ,a#ad+ @. (iem,+ i.di'ad+)
Reall+' Re'+*(a + eF,a.de el "l+S@e de mem+*ia *e#e*Tad+ '+. All+') LeT@elTe @.a '+,ia de @.a 'ade.a (e*mi.ada e. 'e*+? #i(@ada e. la di*e''iH. de mem+*ia dada)
INHERI0S Ha'e S@e @.a 'la#e %e*ede de +(*a #@# ,*+,iedade#? ma(+d+# - eTe.(+#)
!estin de +rocesos
EXEC E&e'@(a @. ,*+'e#+ eF(e*.+) SHELL E&e'@(a @. '+ma.d+ eF(e*.+ e. @.a #%ell)
La"o de 3$entos
'uando un programa Gambas %a terminado de ejecutar su funcin de inicio Mai.BD! entra en el llamado lazo de eventos o event loop. "l programa se encontrar dentro de este lazo o bucle mientras %a6a
un 4rocess corriendo. un :imer %abilitado. un ;ile siendo vigilado. una ventana abierta.
"n este lazo! el programa procesar cualquier evento disparado por cualquier objeto! 6 para cada evento! llamar a su correspondiente /def/eventhandler. 4uede llamar de forma recursiva al lazo de eventos usando la instruccin FA$:. "sto puede conllevar una recursin infinita! pero es el nico modo de refrescar la interfaz de usuario durante la ejecucin de un bucle.
Batrices ,ati$as
Gambas dispone de un tipo predefinido de matriz para cada tipo de datos nativo. "l nombre de estas clases es el nombre del tipo de datos que almacenan seguido de un corc%ete abierto 6 otro cerrado. 16teQR 7%ortQR #ongQR ;loatQR 5ateQR 7tringQR Eatriz de valores 16te. Eatriz de valores 7%ort. Eatriz de valores #ong. Eatriz de valores ;loat. Eatriz de valores 5ate. Eatriz de valores 7tring.
Arra*s
An Arra6 is a set of values indexed b6 an $nteger t%at are consecutive in memor6. All t%e values in an arra6 %ave t%e same datat6pe! and t%ere is one arra6 class for eac% native datat6pe! except 1oolean. 7ee &ative Arra6s for more information. Arra6 can be multi<dimensional! i.e. values are indexed b6 more t%an one $nteger. $f an arra6 %as one dimension! t%en it can be s%rinBed or expanded d6namicall6! Cit% t%e Lesize met%od.
!ists
A #ist is a double<linBed list of values indexed b6 an $nteger! eac% one being stored separatel6 in memor6. ?nl6 Aariant values can be stored in a #ist. :%e #ist maintains a internal pointer so t%at finding a position in t%e list does not impl6 iterates all t%e elements.
Collections
A 'ollection is a set of values indexed b6 a 7tring. ?nl6 Aariant values can be stored in a 'ollection. :%e values are internall6 stored in a %as% table t%at groCs d6namicall6 C%en more and more elements are inserted in it.
Access s)eed
;ast Accessing t%e first! last! previous or next element is immediate. ?t%erCise t%e list is enumerated. .astest
;ast :%e Be6 must be compared Cit% all ot%er Be6s %aving t%e same %as% code. ;ast
%nsertion s)eed
7loC :%e memor6 blocB is resized if needed. And inserting in t%e middle of t%e arra6 needs moving part of t%e memor6 blocB.
?nce t%e position is found! t%e :%e Be6 %as% code gives a insertion is immediate. index into a linBed list of memor6 slots. :%e %as% table %ave to be resized and recalculated sometimes to Beep t%e access fast.
"eletion s)eed
7loC
.astest
;ast
:%e memor6 blocB is resized if ?nce t%e element is found! t%e ?nce t%e element is found! needed. And deleting in t%e middle deletion is immediate. t%e deletion is immediate. of t%e arra6 needs moving part of t%e memor6 blocB. :%e %as% table %ave to be resized and recalculated sometimes to Beep t%e access fast.
4peradores Aritmticos
&umero , &umero
-
7uma dos nmeros. 'alcula el signo opuesto de un nmero. "l opuesto de cero es cero. Lesta dos nmeros. Eultiplica dos nmeros. 5ivide dos nmeros. Un error 5ivisin por cero +J>N. ocurrir si el valor del divisor es cero. "leva &umero a la 4otencia indicada. 4or ejemplo! < c 4 = 6<
&umero
'alcula el cociente de la divisin de dos nmeros. Un error 5ivisin por cero +J>N. ocurrir si el valor del divisor es cero.
A E 9 = I.(BA / 9D
'alcula el resto de la divisin de dos nmeros. Un error 5ivisin por cero +J>N. ocurrir si el valor del divisor es cero.
4peradores de Asignacin
Va*ia"le = EF,*e#iH. Va*ia"le ,= EF,*e#iH. A#i!.a'iH. di*e'(a) A#i!.a'iH. '+. #@ma)
"s un sinnimo de
Va*ia"le = Va*ia"le = EF,*e#iH. Va*ia"le -= EF,*e#iH. A#i!.a'iH. '+. #@#(*a''iH.)
"s un sinnimo de
Va*ia"le = Va*ia"le 5 EF,*e#iH. Va*ia"le .= EF,*e#iH. A#i!.a'iH. '+. m@l(i,li'a'iH.)
"s un sinnimo de
Va*ia"le = Va*ia"le U EF,*e#iH. Va*ia"le /= EF,*e#iH. A#i!.a'iH. '+. diTi#iH.)
"s un sinnimo de
Va*ia"le = Va*ia"le / EF,*e#iH. Va*ia"le 1= EF,*e#iH. A#i!.a'iH. '+. diTi#iH. e.(e*a)
"s un sinnimo de
Va*ia"le = Va*ia"le E EF,*e#iH. Va*ia"le 2= EF,*e#iH. A#i!.a'iH. '+. '+.'a(e.a'iH. de 'ade.a#)
"s un sinnimo de
Va*ia"le = Va*ia"le 7= EF,*e#iH. Va*ia"le 2/= EF,*e#iH. A#i!.a'iH. '+. '+.'a(e.a'iH. de *@(a#)
"s un sinnimo de
Va*ia"le = Va*ia"le 7/= EF,*e#iH.
4peradores de Cadena
'adena 2 'adena 'oncatena dos cadenas. 'adena 2/ 'adena 'adena IKE &umero 'oncatena dos cadenas que contienen nombres de arc%ivo. AOade un separador de ruta entre dos cadenas si es necesario. 'omprueba si una cadena concuerda con un patrn.
4peradores Lgicos
&mero ANL &mero
NO0
'alcula el D6 lgicoD del valor binario de dos nmeros. 'alcula el Dno lgicoD del valor binario de un nmero. 'alcula el Do lgicoD del valor binario de dos nmeros. 'alcula el Do exclusivo lgicoD del valor binario de dos nmeros.
&mero
1ipos de Datos
Ti)o de dato
9++lea. 9-(e S%+*( I.(e!e* L+.! Si.!le 2l+a( La(e S(*i.! Va*ia.( O"&e'( P+i.(e*
"escri)ci5n Aerdadero o falso. /...>@@ <->.IN=...S->.INI <>.,HI.H=-.NH=...S>.,HI.H=-.NHI <0.>>-.-I>./-N.=@H.II@.=/=...S0.>>-.-I>./-N.=@H.II@.=/I 'omo el tipo float de '. 'omo el tipo double de '. ;ec%a 6 %ora! cada una almacenada en un entero. Una cadena con un nmero variable de caracteres. 'ualquier tipo de dato. Leferencia annima a un objeto. Una direccin de memoria.
Tama:o en memoria , b6te , b6te > b6tes H b6tes = b6tes H b6tes = b6tes = b6tes H b6tes ,> b6tes H b6tes H b6tes
/comp/gb.compress/compress /comp/gb.compress/uncompres s
'onnection 51 /comp/gb.db/database /comp/gb.db/field /comp/gb.db/index /comp/gb.db/result /comp/gb.db/resultfield /comp/gb.db/table /comp/gb.db/user "ste componente le permite acceder a los siguientes sistemas gestores de bases de datos
:anto 4ostgre7T# como E67T# son sistemas de bases de datos cliente(servidor! lo que significa que la conexin se realiza sobre un proceso servidor. 4or el contrario! 7T#ite est basado en un arc%ivo o datos en memoria! por lo que no %a6 proceso servidor al que conectarse. :%is means t%at t%e user ma6 need to include a full6 qualified pat% to t%e database file if t%e default is not satisfactor6. 7ee t%e 'onnection class for more information. &ote t%at t%is component creates an intermediate la6er betCeen t%e specific server and 6our program! so t%at 6ou can use exactl6 t%e same code C%atever database bacBend 6ou decide to use. :%is CorBs onl6 if
Uou create 6our database b6 using t%e database manager or b6 using t%is component. Uou use t%e /comp/db/find! /comp/db/create and /comp/db/edit met%ods. Uou donMt put 7T# values directl6 in t%e request! but use t%e substitution feature of t%e previous met%ods. Uou donMt use t%e /comp/db/exec met%od! t%at lets 6ou send 7T# request directl6 to t%e bacBend! so t%at 6ou can access its t%e specific features.
Application /comp/gb/boolean[] 16teQR 'lass /comp/gb/classes 'ollection /comp/gb/component /comp/gb/component s 5ateQR /comp/gb/enum "rror ;ile ;loatQR $ntegerQR #ongQR ?bject
?bjectQR 4aram 4rocess 7%ortQR 7ingleQR /comp/gb/sta t 7tream 7tring 7tringQR 76stem User AariantQR gb
Application (gb)
"sta clase entrega informacin acerca de la aplicacin que est ejecutndose! 6 dota de acceso al entorno del proceso as) como a la l)nea de comandos del proceso.
Smbolos
"sta clase es esttica. ro)iedades Ar,s /comp/gb/application/dir /comp/gb/application/env /comp/gb/application/handle /comp/gb/application/id /comp/gb/application/name /comp/gb/application/path /comp/gb/application/title /comp/gb/application/version
%'te;> (gb)
"sta clase implementa una matriz dinmica de valores 16te.
Smbolos
"sta clase proviene de .Arra6. "sta clase es $nstanciable. "sta clase acta como una matriz #ectura(escribir. "sta clase es enumerable con la palabra clave ;?L "A'3. ro)iedades /comp/gb/.array/bounds 'ount 5ata /comp/gb/.array/dim #engt% Eax M6todos Add 'lear 'op6 /comp/gb/byte[]/fill ;ind $nsert 4op 4us% Lead Lemove Lesize Leverse 7ort Frite
Class (gb)
:%is class depicts a class used b6 t%e interpreter. :%is class can be native! i.e. implemented in a component! or a class Critten in Gambas.
Smbolos
"sta clase no es instanciable. "sta clase acta como una matriz 7lo lectura. ro)iedades /comp/gb/class/count /comp/gb/class/hidden /comp/gb/class/instance /comp/gb/class/name /comp/gb/class/native /comp/gb/class/parent /comp/gb/class/symbols M6todos /comp/gb/class/load Constantes /comp/gb/class/constant /comp/gb/class/event /comp/gb/class/method /comp/gb/class/property /comp/gb/class/variable
Collection (gb)
$mplementa una tabla %as% +en la cual se pueden buscar rpidamente pares clave<valor.! en la que los elementos tienen una clave de tipo cadena 6 los valores son de tipo variant. 'uando no %a6 nada asociado a una clave! se emplea el valor N1LL. "n consecuencia! asociar el valor N1LL con una clave! tiene el mismo efecto que eliminarlo de la coleccin. "l tamaOo de la tabla %as% interna crece automticamente al insertar datos.
Smbolos
"sta clase es $nstanciable. "sta clase acta como una matriz #ectura(escribir. "sta clase es enumerable con la palabra clave ;?L "A'3. ro)iedades M6todos 'ount Pe6 Add 'lear "xist Lemove #engt%