You are on page 1of 37

Manual Bsico Gambas

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

Descripciones del Lenguaje.

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 )))

Constantes del Lenguaje


CONSTANTE "l valor verdadero. "l valor falso. #os nmeros $nteger o #ong. "nteros %exadecimales cortos con signo. "nteros %exadecimales con signo. "nteros %exadecimales sin signo. "nteros binarios. &meros de coma flotante. 'onstantes de 'adena. 'onstante nula ( cadena vac)a.
0R1E 2ALSE 3! 124! 542769! 13333333333 7H128! 7H2222! 72222 7H1392442E! 71392442E 7H:3337! 7H22227 7X1313313131! ;131331311 1)3! 58)4<8219E=<8 "> H+la? m@.d+ A"

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.+"

es a todos los efectos la misma constante que


"Gam"a# e# e.Hme.+"

C)r6
Sinta'is

Ca*a'(e* = Chr$ ( CHdi!+ ) Ca*a'(e* = Chr ( CHdi!+ )

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 num6ricos )redefinidos


gb.General&umbe "scribe en nmero con ,> d)gitos decimales. Usa formato cient)fico si su valor absoluto r es menor que ,/<H o ma6or que ,/I. gb.;ixed gb.4ercent gb.7cientific "quivalente a D/.//D "quivalente a DJJJKD "scribe un nmero con su exponente 6 = d)gitos decimales.

.ormatos )redefinidos de fec1a * 1ora


gb.General5ate "scribe la fec%a slo si el dato de fec%a 6 %ora tiene una parte de fec%a! 6 escribe la %ora slo si tiene parte de %ora. gb.#ong5ate gb.7%ort5ate gb.#ong:ime gb.7%ort:ime ;ormato de fec%a larga. ;ormato de fec%a corta. ;ormato de %ora larga. ;ormato de %ora corta. gb.Eedium5ate ;ormato de fec%a media.

gb.Eedium:ime ;ormato de %ora media.

.ormatos )redefinidos monetarios


gb.'urrenc6 ;ormatea un dato monetario usando el s)mbolo nacional de la moneda. gb.$nternational ;ormatea un dato monetario usando el s)mbolo internacional de moneda.

.ormatos miscelneos
gb.7tandard "mplee gb.General&umber para formatear nmeros 6 gb.General5ate para fec%as 6 %oras.

3structuras de Control de %ucles


9REA/ CON0IN1E LO ))) LOOP 2OR ))) NEX0 2OR EACH ))) NEX0 REPEA0 ))) 1N0IL A"a.d+.a @. "@'le i.media(ame.(e) Sal(a a la #i!@ie.(e i(e*a'iH. de @. "@'le) 9@'le i. i.i(+) 9@'le '+. '+.(ad+*) 9@'le de e.@me*a'iH.) 9@'le '+. @.a '+m,*+"a'iH. de #alida al i.al)

WHILE ))) WENL 9@'le '+. @.a '+m,*+"a'iH. de #alida al i.i'i+) BREAK

7inta8is %93A: Abandona un bucle inmediatamente.


P19LIC S19 9@((+.1JCli'KBD LIM X AS I.(e!e* 2OR X = 1 0O 1333 I2 X = 233 0HEN 9REA/ PRIN0 X NEX0 ENL

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

LIM Li'( AS NEW C+lle'(i+. LIM Eleme.(+ AS S(*i.! Li'(["AO@l"$ = 4 Li'(["R+&+"$ = 1

Li'(["Ve*de"$ = 2 2OR EACH Eleme.(+ IN Li'( PRIN0 Eleme.(+M NEX0 4 1 2

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

3structuras de Control Biscel neas


GO0O Q1I0 RE01RN S0OP WI0H ))) ENL WI0H Sal(+ i.'+.di'i+.al) Cie**a el ,*+!*ama) Re(+*.a de @.a ,*+'edimie.(+) @.'iH. +

Sim@la @. ,@.(+ de i.(e**@,'iH.) Sele'(+* de +"&e(+ ,+* de e'(+)

!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

RPa*a* #i la #i!@ie.(e '+.di'iH. #e '@m,le I2 Name = "Ga(e#" 0HEN S0OP

<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*"

3structuras ' ?unciones de Control de ?lujo


CHOOSE II I2 ))) 0HEN ))) ELSE ))) ENLI2 SELEC0 CASE ))) ENL SELEC0 Eli&e @. Tal+* de @.a li#(a) 2@.'iH. de '+m,*+"a'iH. i.media(a) E#(*@'(@*a '+.di'i+.al) E#(*@'(@*a de ele''iH.)

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

X = 4 PRIN0 C%++#eBX? "@.+"? "d+#"? "(*e#"? "'@a(*+"D (*e#


E(em)lo

X = 4 PRIN0 I#N@llBC%++#eBX U 2? "@.+"? "d+#"? "(*e#"? "'@a(*+"DD 0*@e

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

X = 7 PRIN0 I BBX MOL 2D = 3? "eTe."? "+dd"D +dd


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

PRIN0 I BBX MOL 2D = 1? "+dd"? 1 / 3D LiTi#i+. "- Oe*+

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?

?lujos ' funciones de 3ntradaH7alida


CLOSE EO 2L1SH INP10 Cie**a @. 2l@&+ LeT@elTe @. Tal+* i.di'a.d+ #i #e al'+.OH el de @. a*'%iT+) V@el'a la #alida de @. 2l@&+ S@e di#,+.e de @. "@ e*) Lee 'ade.a# de @. 2l@&+ de (eF(+ - la# '+.Tie*(e e. Tal+*e#) i.al

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

Sintaxis C OSE [ ! $ 2l@&+

'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

Sintaxis 9++lea.+ = Eo" ( [ 2l@&+ $ )

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

Sintaxis F #S$ [ [ ! $ 2l@&+ $

;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

Sintaxis IN%#& [ ! 2l@&+ ' $ Va*ia"le [ ? Va*ia"le ))) $

#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'

Sintaxis IN%#& FRO( S(*eam

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'

IN%#& FRO( DEFA# &

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

Sintaxis OCK [ ! $ 2l@&+

$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 )

5evuelve la longitud de un flujo abierto.

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

MESSAGE Access forbidden +JH-. ;ile is a director6 +JHN.

"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.

R P*i.(# (%e '+.(e.(# + LIM %2ile AS 2ile LIM #Li.e AS S(*i.!

%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

ile? K.+W. (+ @#e li((le5e.dia.

+*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

O#&%#& &O DEFA# &

Ledirige la salida estndar de nuevo %acia el valor previo a la redireccin.

+9I,1
Sinta'is

Sintaxis %RIN& [ ! 2l@&+ ' $ EF,*e#iH. [ ^ * ] ** ] ' _ EF,*e#iH. ))) $ [ ^ * ] ** ] ' _

"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'

Sintaxis SEEK [ ! $ S(*eam ' P+#i(i+.

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

Sintaxis P+#i'iH. = See+ ( 2l@&+ )

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

Sintaxis #N OCK [ ! $ 2l@&+

5esbloquea un ;lujo previamente bloqueado con la instruccin #?'P.

<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*+)

R+@.d Red+.dea @. .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

LeT@elTe @.a 'ade.a S@e '+.(ie.e #Hl+ e#,a'i+#)

C+.Tie*(e @.a 'ade.a a ma-Y#'@la#)

?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.!)

C2l+a( C+.Tie*(e @. Tal+* e. 2l+a()

CS%+*( C+.Tie*(e @. Tal+* e. S%+*()

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*+ +

?unciones de ?ec)a ' =ora


La(e La(eAdd La(eLi LaH+@* Mi.@(e M+.(% N+W Se'+.d LeT@elTe la e'%a #i. el '+m,+.e.(e de %+*a) e'%a dada) e'%a#) A`ade @. ,e*i+d+ de (iem,+ a la LeT@elTe el dZa de @. Tal+* La(e) LeT@elTe el .Yme*+ de %+*a# de @. Tal+* La(e) LeT@elTe el .Yme*+ de mi.@(+# de @. Tal+* La(e) LeT@elTe el .Yme*+ de me# de @. Tal+* La(e) LeT@elTe la e'%a - %+*a a'(@ale#) LeT@elTe l+# #e!@.d+# de @. Tal+* La(e)

LeT@elTe el ,e*i+d+ de (iem,+ e.(*e d+#

0ime 0ime* WeeK WeeKLaXea*

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*+ +

?unciones Biscel neas


A**a- C*ea - deT@elTe @.a ma(*iO)

?unciones para Arc)i$os ' Carpetas


A''e## C+m,*@e"a l+# ,e*mi#+# de a''e#+ a @. a*'%iT+) COPX L2*ee Li* I#Li* /ILL LIN/ M/LIR RLi* C+,ia @. a*'%iT+) LeT@elTe el e#,a'i+ li"*e e. @. di#,+#i(iT+) LeT@elTe el '+.(e.id+ de @.a 'a*,e(a) LeT@elTe #i la *@(a a,@.(a a @.a 'a*,e(a) Elimi.a @. a*'%iT+) C*ea @. e.la'e #im"Hli'+) C*ea @.a 'a*,e(a) LeT@elTe el *e#@l(ad+ de @.a 'a*,e(a *e'@*#iTame.(e) Elimi.a @.a 'a*,e(a Ta'Za) O"(ie.e i. +*ma'iH. #+"*e @. a*'%iT+) C*ea .+m"*e# de a*'%iT+# (em,+*ale#)

RENAME Re.+m"*a + m@eTe @. a*'%iT+ + 'a*,e(a) RMLIR S(a( 0em,I

?unciones para Comprobar Caracteres


I#A#'ii I#9la.K I#Li!i( C+m,*@e"a #i @.a 'ade.a '+.(ie.e #Hl+ 'a*a'(e*e# ASCII) C+m,*@e"a #i @.a 'ade.a '+.(ie.e #Hl+ 'a*a'(e*e# de e#,a'i+ + (a"@la'i+.e#) C+m,*@e"a #i @.a 'ade.a '+.(ie.e #Hl+ dZ!i(+#)

I#HeFa I#LCa#e I#P@.'( I#S,a'e I#1Ca#e

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#Le((e* C+m,*@e"a #i @.a 'ade.a '+.(ie.e #Hl+ le(*a#)

?unciones para 1ipos de Datos


I#9++lea. LeT@elTe #i @.a eF,*e#iH. ,e*(e.e'e al (i,+ 9++lea.) I#9-(e I#La(e I#2l+a( LeT@elTe #i @.a eF,*e#iH. ,e*(e.e'e al (i,+ 9-(e) LeT@elTe #i @.a eF,*e#iH. ,e*(e.e'e al (i,+ La(e) LeT@elTe #i @.a eF,*e#iH. ,e*(e.e'e al (i,+ 2l+a()

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 7obre ,Jmeros Aleatorios


Ra.d+miOe I.i'ialiOa la #emilla de !e.e*a'iH. de .Yme*+# ,#e@d+ alea(+*i+#) R.d LeT@elTe @. .Yme*+ ,#e@d+ alea(+*i+)

?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#)

?unciones acerca de Logartmos ' 38ponentes


C"* EF, EF,2 EF,m L+! L+!2 RaZO 'Y"i'a EF,+.e.(e 2cF EF,BFD 5 1 L+!a*i(m+ .e,e*ia.+ L+!a*i(m+ e. 9a#e 2

EF,13 13cF

L+!13 L+!a*i(m+ de'imal L+!, SS* L+!B1=FD RaZO '@ad*ada

!estin de errores
CA0CH Ca,(@*a @. e**+* e. @.a @.'iH.)

LE91G ERROR E**+*

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

2INALLX E&e'@(a @. "l+S@e de 'Hdi!+ e. @.a %@"+ @. e**+*) 0RX

I.(e.(a e&e'@(a* @.a +*de.? #i. di#,a*a* @. e**+*)

!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+)

!estin de ?unciones 38ternas


All+' EX0ERN 2*ee Re#e*Ta @. "l+S@e de mem+*ia) Le'la*a @.a @.'iH. eF(e*.a) @.'i+.e# eF(e*.a#) Li"e*a @. "l+S@e de mem+*ia *e#e*Tad+ '+. All+')

LI9RARX Le i.e la li"*e*Za d+.de #e #i(Ya. la# S(*P(*

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)

!estin de 4bjetos ' Clases


CLASS Cla## CREA0E EXPOR0 LAS0 ME NEW NeW O"&e'( S1PER Le'la*a el @#+ de @.a 'la#e) G*a. 'a.(idad de ma(+d+# e#(C(i'+# ,a*a +"(e.e* i. +*ma'iH. de @.a 'la#e) Le'la*a @.a 'la#e '+m+ "a@(+5i.#(a.'ia"le") Le'la*a @.a 'la#e '+m+ eF,+*(ada) LeT@elTe @.a *e e*e.'ia al Yl(im+ +"&e(+ S@e %a di#,a*ad+ @. eTe.(+) LeT@elTe @.a *e e*e.'ia al +"&e(+ a'(@al) I.#(a.'ia @. +"&e(+) I.#(a.'ia @. +"&e(+ '+. @.a 'la#e S@e #e e#,e'i i'a di.Cmi'ame.(e) G*a. 'a.(idad de ma(+d+# e#(C(i+# *ela(iT+# a la !e#(iH. de @. +"&e(+) LeT@elTe @.a *e e*e.'ia al +"&e(+ a'(@al S@e @(iliOa*C la im,leme.(a'iH. de l+# #Zm"+l+# ,Y"li'+# de la 'la#e ,ad*e)

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.

$ntegerQR Eatriz de valores $nteger. 7ingleQR Eatriz de valores 7ingle.

?bjectQR Eatriz de valores ?bject. AariantQR Eatriz de valores Aariant.

,ati$e Container Classes


Gambas interpreter offers 6ou t%ree Binds of native container classes

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.

31ic1 one use 7


/ere is a s1ort com)arison bet2een t1e t1ree 0ind of container classes8 Arra* 9e* datat*)e $nteger !ist $nteger Collection 7tring

%nternal stora,e Eemor6 blocB. 5ouble linBed<list. 3as% table.

Access s)eed

.astest :%e access is immediate.

;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

&umero - &umero &umero . &umero &umero / &umero &umero 0 4otencia

&umero 1 &umero &umero LIV &umer o &umero MOL &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

&mero OR &mero &mero XOR &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.

&alor )or defecto


2ALSE 3 3 3 3 3)3 3)3 N1LL N1LL N1LL N1LL 3

Tama:o en memoria , b6te , b6te > b6tes H b6tes = b6tes H b6tes = b6tes = b6tes H b6tes ,> b6tes H b6tes H b6tes

gb.compress - Librera de compresin


"ste componente permite comprimir 6 descomprimir arc%ivos! as) como leer 6 escribir en arc%ivos comprimidos utilizando los mtodos %abituales en flujos. :ambin permite comprimir 6 descomprimir cadenas en memoria. Actualmente! el componente puede utilizar dos algoritmos! gracias a las librer)as zlib 6 libbzip>. #os programas ms conocidos que utilizan estos algoritmos son las utilidades de l)nea de comandos DgzipD 6 Dbzip>D! por lo que podr utilizar arc%ivos generados por estas utilidades. "ste componente emplea internamente las librer)as DlibzD 6 Dlibbz>D! por lo que debe tenerlas instaladas en los equipos que %agan uso del componente de compresin. 7i slo desea utilizar uno de los dos algoritmos! no es necesario que instale ambas librer)as. Es informacin sobre el funcionamiento interno %ttp ((CCC.gzip.org(zlib( %ttp ((sources.red%at.com(bzip>( :odas las distribuciones %abituales de G&U(#inux inclu6en paquetes con estas librer)as! ;ree175 6 otros sistemas Unix! tambin. Ambos compresores estn libres de patentes! 6 actualmente pueden ser utilizados incluso en programas que no sean Dcdigo abiertoD u Dopen sourceD! si sigue todas las instrucciones contenidas en sus licencias +lalas detenidamente para las versiones que planee utilizar..
Clases

/comp/gb.compress/compress /comp/gb.compress/uncompres s

gb.db - Componente para Acceso a %ases de Datos


"ste componente le permite acceder a varios sistemas gestores de bases de datos.
Clases

'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

4ostgre7T# E67T# 7T#ite ?51'

: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.

$f 6ou donMt need database independance! do as 6ou liBe9

gb - Clases nati$as internas de !ambas


"ste componente contiene todas las clases inclu)das dentro del intrprete por defecto.
Clases

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%

You might also like