Sie sind auf Seite 1von 36

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 ms bsico de Gambas
Interfaz grfica
Varios
Aplicaciones en varios idiomas

Artculos Gambas
Diferencia entre VB
Como escribir componentes
Introduccin Visual a Gambas
Cmo puedo convertir mi proyecto VB a Gambas?
Cmo se hace para ?
Programacin en N-capas Bajo Gambas
Un ejemplo de juego simple, The Bisha
Ejemplo de manejo de procesos, GbPing
Otro ejemplo de colaboracin entre procesos, "GbPloticusDemo"

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 = "[/def/gambas]"
hObject.Property = iVal
cCollection[sKey] = Name
...

Constantes del Lenguaje


CONSTANTE

EJEMPLO

El valor verdadero.

TRUE

El valor falso.

FALSE

Los nmeros Integer o Long.

0, 123, -32769, 10000000000

Enteros hexadecimales cortos con signo.

&H1F5, &HFFFF, &FFFF

Enteros hexadecimales con signo.

&H10BF332E, &10BF332E

Enteros hexadecimales sin signo.

&H8000&, &HFFFF&

Enteros binarios.

&X1010010101, %101001011

Nmeros de coma flotante.

1.0, -5.345219E+45

Constantes de Cadena.

" Hola, mundo !"

Constantes de Cadena para ser traducidas. ("Este programa est muy bien!")
Constante nula / cadena vaca.

NULL

Las constantes de cadena pueden contener los siguientes caracteres de escape:


CARACTER DE ESCAPE

EQUIVALENTE ASCII

\n

Chr$(13)

\r

Chr$(10)

\t

Chr$(9)

\"

Comillas

\\

Barra hacia atrs

\xx

Chr$(&Hxx)

Puede escribir una constante de cadena dividida en varias partes sucesivas. Por ejemplo,
"Gambas" " es " "fenmeno"

es a todos los efectos la misma constante que


"Gambas es fenmeno"

Chr$
Sintaxis

Caracter = Chr$ ( Cdigo )


Caracter = Chr ( Cdigo )

Devuelve el caracter cuyo cdigo ASCII es Cdigo.


Precaucin! Gambas utiliza UTF-8 como codificacin interna, por lo que un caracter con cdigo 128 o
superior no tiene el mismo significado que en otras codificaciones, como ISO 8859-1.
Ejemplo

Ejemplo
PRINT Chr$(65)
A
PUBLIC SUB Button1_Click()
DIM X AS Integer
FOR X = 32 TO 127
PRINT Chr$(X);
NEXT
END

Constantes Predefinidas

Tipos de datos
Estas constantes son devueltas por TypeOf.
gb.Null

valor NULL

gb.Boolean

valor Boolean.

gb.Byte

valor Byte.

gb.Short

valor Short.

gb.Integer

valor Integer.

gb.Long

valor Long.

gb.Single

valor Single.

gb.Float

valor Float.

gb.Date

valor Date.

gb.String

valor String.

gb.Variant

valor Variant.

gb.Object

referencia Object.

gb (gb)
Esta clase esttica incluye todas las constantes bsicas de Gambas empleadas por un gran nmero de
funciones.
Smbolos

Esta clase es esttica.


Constantes
Ascent BigEndian Binary Boolean Byte Class Currency Date Day Descent Device Directory
Exec File Fixed Float Friday GeneralDate GeneralNumber Hour Integer International Link
LittleEndian Long LongDate LongTime MediumDate MediumTime Minute Monday Month
NewLine Null Object Percent Pipe Quarter Read Saturday Scientific Second Short ShortDate
ShortTime Single Socket Standard String Sunday Tab Text Thursday Tuesday Variant
Wednesday Week WeekDay Write Year

Tipos de archivo
Estas constantes tiene uso en la funcin Stat().
gb.File

Archivo normal

gb.Directory Carpeta
gb.Device

Archivo especial de dispositivo

gb.Pipe

Tubera con nombre

gb.Socket

Archivo especial de Socket

gb.Link

Enlace simblico

Constantes de cadena
gb.NewLin Caracter de "Nueva Lnea". Equivalente a Chr$(10)
e
gb.Tab

Caracter de Tabulacin. Equivalente a Chr$(9)

Tipos de ordenacin
Constantes empleadas en el mtodo Sort de las Matrices.
gb.Binary Ordenacin binaria.
gb.Text

Ordenacin ASCII, no distingue maysculas de minsculas.

Das de la semana
Estas constantes son valores devueltos por la funcin WeekDay().
gb.Monday

Lunes

gb.Tuesday

Martes

gb.Wednesday Mircoles
gb.Thursday

Jueves

gb.Friday

Viernes

gb.Saturday

Sbado

gb.Sunday

Domingo

Formatos numricos predefinidos


gb.GeneralNumbe Escribe en nmero con 12 dgitos decimales. Usa formato cientfico si su valor absoluto
r
es menor que 10-4 o mayor que 107.
gb.Fixed

Equivalente a "0.00"

gb.Percent

Equivalente a "###%"

gb.Scientific

Escribe un nmero con su exponente y 8 dgitos decimales.

Formatos predefinidos de fecha y hora


gb.GeneralDate Escribe la fecha slo si el dato de fecha y hora tiene una parte de fecha, y escribe la hora
slo si tiene parte de hora.
gb.LongDate

Formato de fecha larga.

gb.MediumDate Formato de fecha media.


gb.ShortDate

Formato de fecha corta.

gb.LongTime

Formato de hora larga.

gb.MediumTime Formato de hora media.


gb.ShortTime

Formato de hora corta.

Formatos predefinidos monetarios


gb.Currency

Formatea un dato monetario usando el smbolo nacional de la moneda.

gb.International Formatea un dato monetario usando el smbolo internacional de moneda.

Formatos miscelneos
gb.Standard Emplee gb.GeneralNumber para formatear nmeros y gb.GeneralDate para fechas y horas.

Estructuras de Control de Bucles


BREAK

Abandona un bucle inmediatamente.

CONTINUE

Salta a la siguiente iteracin de un bucle.

... LOOP

DO

FOR

Bucle infinito.

... NEXT

FOR EACH
REPEAT
WHILE

Bucle con contador.

... NEXT Bucle de enumeracin.

... UNTIL

... WEND

Bucle con una comprobacin de salida al final.


Bucle con una comprobacin de salida al inicio.

BREAK
Sintaxis
BREAK
Abandona un bucle inmediatamente.
PUBLIC SUB Button1_Click()
DIM X AS Integer
FOR X = 1 TO 1000
IF X = 200 THEN BREAK
PRINT X
NEXT
END

CONTINUE
Sintaxis
CONTINUE
Salta a la siguiente iteracin de un bucle.
Ejemplo

FOR I = 1 TO 10
IF I = 1 THEN
PRINT "Uno";
CONTINUE
ENDIF
IF I = 2 THEN
PRINT " Dos";
CONTINUE
ENDIF
PRINT I;
NEXT
PRINT
Uno Dos 3 4 5 6 7 8 9 10

DO
Sintaxis
DO [ WHILE Expresin ]
Comienza un bucle infinito delimitado por las instrucciones DO ... LOOP. Si se especifica WHILE, el bucle
se detendr cuando la Expresin sea falsa. Si la expresin es falsa al comienzo, el bucle no se ejcuta ninguna
vez.
Ejemplo

PUBLIC SUB Form_Open()


DIM a AS Integer
a = 1
DO WHILE a <= 10
PRINT "Hola Mundo "; a
INC a
LOOP
END

FOR
Sintaxis
FOR Variable = Expresin TO Expresin [ STEP Expresin ]
...
NEXT
Repite un bucle mientras se incrementa una variable.
Tenga en cuenta que la variable ha de ser:
Numrica, es decir, un byte, un short, un integer o un nmero real float o single.
Una variable local.
Tenga en cuenta tambin que si la expresin inicial es mayor que la final (para valores positivos de STEP), o
es menor que la final (para valores negativos), el bucle nunca se ejecutar.
DIM I AS Integer
FOR I = 1 TO 20 STEP 3
PRINT I & " ";
NEXT
1 4 7 10 13 16 19

FOR EACH
Sintaxis
FOR EACH Variable IN Expresin

NEXT
Repite un bucle mientras se enumera un objeto.
Expresin debe ser una referencia a un objeto enumerable: por ejemplo, una coleccin, o una matriz.
Ejemplo

DIM Dict AS NEW Collection


DIM Elemento AS String
Dict["Azul"] = 3
Dict["Rojo"] = 1

Dict["Verde"] = 2
FOR EACH Elemento IN Dict
PRINT Elemento;
NEXT
3 1 2

REPEAT
Sintaxis

Sintaxis
REPEAT
Da comienzo a una estructura de bucle delimitada por las instrucciones REPEAT ... UNTIL.
Tenga en cuenta que el bucle repeat siempre se ejecuta al menos una vez, incluso si el valor indicado por
UNTIL es falso inicialmente.

UNTIL
Sintaxis

Sintaxis
UNTIL Expresin
Finaliza un bucle delimitado por las instrucciones REPEAT ... UNTIL.
El bucle se repite hasta que la Expresin es cierta.
Ejemplo

PUBLIC SUB Form_Open()


DIM I AS Integer
REPEAT
PRINT Timer
UNTIL Timer > 10
END

WHILE
Sintaxis

Sintaxis
WHILE Expresin
Da comienzo a un bucle delimitado por las instrucciones WHILE ... WEND.
El bucle se repite mientras la Expresin sea cierta.
Si la expresin es falsa al inicio, el bucle nunca se ejecuta.
La estructura DO WHILE ... LOOP es equivalente.
Ejemplo

PUBLIC SUB Form_Open()


DIM a AS Integer
a = 1
WHILE a <= 10
PRINT "Hola Mundo "; a
INC a
WEND
END

Estructuras de Control Miscelneas


GOTO

Salto incondicional.

QUIT

Cierra el programa.

RETURN

Retorna de una funcin o procedimiento.

STOP

Simula un punto de interrupcin.

WITH

... END WITH Selector de objeto por defecto.

GOTO
Sintaxis
GOTO Etiqueta
Salta a una etiqueta declarada en otro punto de la funcin.

QUIT
Sintaxis
QUIT
Finaliza un programa inmediatamente.
Todas las ventanas se cerrarn, y todo se liberar lo mejor posible.

RETURN
Sintaxis
RETURN [ Expresin ]
Sale de un procedimiento o funcin devolviendo el valor Expresin.
Si sale de un procedimiento, no puede especificar ninguna Expresin.
Si sale de una funcin, y no se especifica la Expresin, el valor devuelto es el valor por defecto asociado al
tipo de dato devuelto por la funcin.

STOP
Sintaxis
STOP
Detiene el programa y lanza el depurador, del mismo modo que un punto de interrupcin en la lnea actual.
Esta instruccin no hace nada si el programa no est siendo depurado.
Ejemplo

'Parar si la siguiente condicin se cumple


IF Name = "Gates" THEN STOP

WITH
Sintaxis

Sintaxis
WITH Objeto
...
END WITH
Entre las instrucciones WITH y END WITH, una expresin que comience por un punto se refiere al objeto.
Puede imbricar las estructuras WITH ... END WITH.
WITH hButton
.Text = "Cancelar"
END WITH
'es equivalente a
hButton.Text = "Cancelar"

Estructuras y Funciones de Control de Flujo


CHOOSE

Elije un valor de una lista.

IIf

Funcin de comprobacin inmediata.

IF

... THEN ... ELSE ... ENDIF

SELECT CASE

Estructura condicional.

... END SELECT Estructura de eleccin.

Choose
Sintaxis
Valor = Choose (Eleccin , Resultado #1 , Resultado #2 [ , ... ] )
Esta funcin devuelve el valor de uno de sus argumentos Resultado #i , de acuerdo con el valor de Eleccin.
Si Eleccin es 1, se devuelve Resultado #1.
Si Eleccin es 2, se devuelve Resultado #2, y as en adelante...
Si Eleccin es menor o igual a cero, o no hay valor especificado para el valor de Eleccin, se
devuelve NULL.
Ejemplo

X = 3
PRINT Choose(X, "uno", "dos", "tres", "cuatro")
tres
Ejemplo

X = 3
PRINT IsNull(Choose(X * 2, "uno", "dos", "tres", "cuatro"))
True

IIf
Sintaxis
Value = IIf ( Boolean , True value [ , False value ] )
Value = If ( Boolean , True value [ , False value ] )
Evaluate the Boolean expression, and return True value if this expression is true, or False value if this
expression is false.
If False value is not specified, it is assumed to be NULL.
Be careful! Contrary to IF, or the C/Perl ? operator, both True value and False value are evaluated,
whatever the value of Boolean is.
Example

X = 7
PRINT If((X MOD 2) = 0, "even", "odd")
odd
Example

' Never do the following in real code, because it is not translatable!


X = 7
PRINT "You have " & X & " message" & If(X <> 1, "s") & " waiting."
You have 7 messages waiting.
Example

PRINT If((X MOD 2) = 1, "odd", 1 / 0)


Division by zero

IF
Sintaxis
IF Expresin [ { AND IF | OR IF } Expresin ... ] THEN
...
[ ELSE IF Expresin [ { AND IF | OR IF } Expresin ... ] THEN
... ]
[ ELSE
... ]
ENDIF
Estructura condicional de control.
Si utiliza varias expresiones de comprobacin separadas por la palabra clave AND IF, son evaluadas de
izquierda a derecha hasta que la primera con valor FALSE es alcanzada, y se considera entonces el conjunto
con valor FALSE. Si todas las expresiones son TRUE, el conjunto se considera con valor TRUE.
Si utiliza varias expresiones de comprobacin separadas por la palabra clave OR IF, son evaluadas de
izquierda a derecha hasta que la primera con valor TRUE es alcanzada, y se considera entonces el conjunto
con valor TRUE. Si todas las expresiones son FALSE, el conjunto se considera con valor FALSE.
No se puede mezclar las palabras clave AND IF y OR IF en una misma lnea.

DIM k AS Integer
FOR k = 1 TO 10
IF k < 5 OR IF k > 5 THEN
PRINT k;;
ELSE
PRINT
PRINT "Llegamos al 5!"
END IF
NEXT
PRINT
1 2 3 4
Llegamos al 5!
6 7 8 9 10

SELECT
s

Sintaxis
SELECT [ CASE ] Expresin
[ CASE Expresin [ TO Expresin #2 ] [ , ... ]
... ]
[ CASE Expresin [ TO Expresin #2 ] [ , ... ]
... ]
[ { CASE ELSE | DEFAULT }
... ]
END SELECT
Selecciona una expresin a comparar, y ejecuta el cdigo encerrado en la expresin correspondiente CASE.
Si no concuerda ninguna de las expresiones CASE, se ejecutar el cdigo dentro de la expresin DEFAULT
o CASE ELSE.
Una expresin CASE es una lista de valores simples o intervalos entre dos valores separados por la palabra
clave TO.
Ejemplo

'Desea calcular una funcin aleatoria.


'Repite una funcin aleatoria mil veces para
'conocer cuantas veces aparecen los nmeros
'1, 2, 3, 4, 5 o 6.
DIM
DIM
DIM
DIM
DIM
DIM
DIM
DIM

x
w
a
b
c
d
e
f

AS
AS
AS
AS
AS
AS
AS
AS

Integer
Integer
Integer
Integer
Integer
Integer
Integer
Integer

FOR x = 1 TO 1000
w = Int(Rnd(6) + 1)
SELECT CASE w
CASE 1
a = a + 1
CASE 2
b = b + 1
CASE 3
c = c + 1
CASE 4
d = d + 1
CASE 5
e = e + 1
CASE 6
f = f + 1
CASE ELSE
PRINT "Esto es imposible!"
END SELECT
NEXT
PRINT a, b, c, d, e, f

Flujos y funciones de Entrada/Salida


CLOSE

Cierra un Flujo

EOf

Devuelve un valor indicando si se alconz el final de un archivo.

FLUSH

Vuelca la salida de un Flujo que dispone de un buffer.

INPUT

Lee cadenas de un Flujo de texto y las convierte en valores.

INPUT FROM

Redirige la entrada estndar.

LINE INPUT

Lee lneas de un Flujo de texto.

LOCK

Bloquea un Flujo abierto.

LOf

Devuelve la longitud de un Flujo.

OPEN

Abre un archivo para lectura o escritura y crea un Flujo.

OUTPUT TO

Redirige la salida estndar.

PRINT

Escribe expresiones en un Flujo.

READ

Lee datos binarios de un Flujo.

SEEK

Cambia la posicin del puntero de un Flujo.

SEEk

Obtiene la posicin del puntero de un Flujo.

UNLOCK

Desbloquea un Flujo abierto.

WRITE

Escribe datos binarios en un Flujo.

CLOSE
Sintaxis

Sintaxis
CLOSE [ # ] Flujo

Cierra un archivo abierto, u otro tipo de Flujo.


Esta instruccin nunca falla.
Si ha abierto un Flujo de proceso, cerrarlo significa cerrar la entrada estndar, similar a pulsar CTRL+D
en un terminal.

Eof
Sintaxis

Sintaxis
Booleano = Eof ( [ Flujo ] )

Devuelve TRUE si el puntero se encuentra al final de un flujo.


Si no se especifica Flujo, se emplea la entrada estndar.
Vase LINE INPUT para un ejemplo.

FLUSH
Sintaxis

Sintaxis
FLUSH [ [ # ] Flujo ]

Fija el contenido de un flujo que dispone de un buffer.


Si no se especifica el buffer, todos los flujos abiertos son fijados.
Fijar el contenido de un flujo abierto para lectura no tiene sentido.

INPUT
Sintaxis

Sintaxis
INPUT [ # Flujo , ] Variable [ , Variable ... ]

Lee el Flujo, y convierte elementos separados por caracteres de espacio o retornos de carro con la funcin
Val antes de situar el valor en las variables.
Si no se especifica el flujo, se lee de la entrada estndar.

INPUT FROM
Syntax

Sintaxis
INPUT FROM Stream

Redirects the default standard input to the stream Stream.


The default standard input is used by INPUT, READ, LINE INPUT, Eof and Lof when you don't specify
their stream argument.
Calls to this instruction can be imbricated.
Syntax

INPUT FROM DEFAULT

Redirects the default standard input back to the value it had before the last redirection

LINE INPUT
Sintaxis
LINE INPUT [ # Flujo , ] Variable

Lee una lnea entera de texto del flujo indicado.


Si no se especifica un flujo, se utilizar la entrada estndar.
No emplee esta instruccin para leer desde archivos binarios, ya que perder los caracteres de retorno de
carro. Emplee READ en su lugar.
Ejemplo

'Muestra un archivo en la consola


hFile = OPEN NombreArchivo FOR INPUT
WHILE NOT Eof(hFile)
LINE INPUT #hFile, UnaLinea
PRINT UnaLinea
WEND
CLOSE #hFile

LOCK
Sintaxis

Sintaxis
LOCK [ # ] Flujo

Intenta dar de alta un bloqueo de sistema en un flujo abierto.


Si el flujo ya est bloqueado por otro proceso, el comando falla.

Lof
Sintaxis
Longitud = Lof ( Flujo AS Stream )

Devuelve la longitud de un flujo abierto.

OPEN NombreArchivo FOR READ AS #hFile


...
PRINT "La longitud del archivo es: "; Lof(hFile)

Si el flujo no es un archivo, es decir, un objeto Process o un Socket, retorna el nmero de bytes que pueden
ser ledos de una sola vez.
PUBLIC SUB Process_Read()
DIM sBuffer AS String
PRINT "Puedo leer: "; Lof(LAST)
' Read them
READ #LAST, sBuffer, Lof(LAST)
END

OPEN
x

Sintaxis
Stream = OPEN File name FOR [ READ | INPUT ] [ WRITE | OUTPUT ] [ CREATE | APPEND ] [
WATCH ]

Opens a file for reading, writing, creating or appending data. The file must exist, unless the CREATE keyword
is specified.

If the CREATE keyword is specified, then the file is created, or cleared if it already exists.
If the APPEND keyword is specified, then the file pointer is moved to the end of file just after the file is
opened.
If the READ or WRITE keyword are specified, then the input-output are not buffered.
If the INPUT or OUTPUT keyword are specified, then the input-output are buffered.
If the WATCH keyword is specified, the file is watched by the interpreter :
o If at least one byte can be read from the file, then the event handler File_Read() is called.
o If at least one byte can be written into the file, then the event handler File_Write() is called.

If the file is successfully opened, a stream object is returned to the variable Stream.
Errors

MESSAGE

DESCRIPTION

Access forbidden
(#43)

The requested access to the file is not allowed, or search permission is denied for one of
the directories in the path prefix of pathname, or the file did not exist yet and write
access to the parent directory is not allowed.

File is a directory
(#46)

File name refers to a directory.

File or directory
File name does not exist, or a directory component in pathname does not exist or is a
does not exist (#45) dangling symbolic link.
Out of memory
(#1)

The system ran out of memory.

Device is full (#37) File name was to be created but the device containing File name has no room for the
new file.
Not a directory...
(#49)

A component used as a directory in File name is not, in fact, a directory.

System error...
(#42)

Other possible system errors:

Too many symbolic links were encountered in resolving File name.


The process already has the maximum number of files open.
The system limit on the total number of open files has been reached.
File name refers to a device special file and no corresponding device exists.
The named file is a named pipe and no process has the file open for reading.
File name refers to a file on a read-only filesystem and write access was
requested.

File name refers to an executable image which is currently being executed and
write access was requested.

Example

' Prints the contents of a text file to the screen


DIM hFile AS File
DIM sLine AS String
hFile = OPEN "/etc/passwd" FOR INPUT
WHILE NOT Eof(hFile)
LINE INPUT #hFile, sLine
PRINT sLine
WEND
Example

' Watching a serial port


DIM hFile AS File
hFile = OPEN "/dev/ttyS0" FOR READ WRITE WATCH
...
PUBLIC SUB File_Read()
DIM iByte AS Byte
READ #hFile, iByte
PRINT "Got one byte: "; iByte
END
Example

' Reading data from a BMP file, known to use little-endian format :
DIM hFile AS File
DIM iData AS Integer
hFile = OPEN "image.bmp" FOR INPUT
hFile.ByteOrder = gb.LittleEndian
...
READ #hFile, iData

OUTPUT TO
Sintaxis
OUTPUT TO Flujo

Redirige la salida estndar por defecto al flujo indicado.


La salida estndar por defecto se utiliza por parte de PRINT y WRITE si no especifica el argumento de flujo.
Las llamadas a esta funcin pueden imbricarse.
Sintaxis

OUTPUT TO DEFAULT

Redirige la salida estndar de nuevo hacia el valor previo a la redireccin.

PRINT
Sintaxis

Sintaxis
PRINT [ # Flujo , ] Expresin [ { ; | ;; | , } Expresin ... ] [ { ; | ;; | , }

Escribe expresiones en el flujo.


Si no se especifica un flujo, se utilizar la salida estndar.
Las expresiones se convierten en cadenas empleando la funcin Str$.
Si no hay un punto y coma despus de la expresin, se aade un caracter de "nueva lnea" despus de
la ltima expresin.
Si hay un punto y coma doble, se aade un caracter de "espacio" entre las expresiones.
Si se utiliza una coma en lugar de un punto y coma, se aade un caracter de tabulacin (cdigo 9
ASCII) para separar las expresiones.

READ
Syntax

Sintaxis
READ [ # Stream , ] Variable [ , Length ]
READ [ # Pointer , ] Variable [ , Length ]

Reads the stream Stream as binary data whose type is given by the type of the variable. The binary
representation is the one used by the WRITE instruction.
If the stream is not specified, then the standard input is used.
If Variable is a string, you can specify a length that indicates the number of bytes to read. If the length is
negative, then (- Length) bytes are read up to the end of stream.
If no length is specified for a string, it is is read from the stream. The string then must have been written with
the WRITE instruction.
This instruction uses the byte order of the stream to read the data.
If you specify a Pointer instead of a Stream, then data will be read directly from the memory address
specified by the pointer.
If you try to read at a forbidden memory address, you will get an error. The interpreter won't crash.

SEEK
Syntax

Sintaxis
SEEK [ # ] Stream , Position

Defines the position of the stream pointer, for the next read/write operation.
If Position is negative, then the stream pointer is moved relatively to the end of the file.
To move the stream pointer after the end of the file, you must use the Lof function.
Example

' Move to the beginning of the file


SEEK #hFile, 0
' Move after the end of the file
SEEK #hFile, Lof(#hFile)
' Move 100 bytes before the end of the file
SEEK #hFile, -100

Seek
Sintaxis

Sintaxis
Posicin = Seek ( Flujo )

Devuelve el valor actual del puntero en el flujo indicado.


El valor devuelto es un entero largo.
Muchos tipos de flujos no disponen de un puntero: Process, Socket, ...

UNLOCK
Sintaxis

Sintaxis
UNLOCK [ # ] Flujo

Desbloquea un Flujo previamente bloqueado con la instruccin LOCK.

WRITE
Sintaxis

WRITE [ # Flujo , ] Expresin [ , Longitud ]


WRITE [ # Puntero , ] Expresin [ , Longitud ]

Escribe una expresin en un Flujo usando su representacin binaria.


Si no se especifica el flujo, se emplea la salida estndar.

Si la Expresin es una cadena, puede especificar la longitud que indica el nmero de bytes a escribir. Si no se
especifica la longitud, ste se escribe en el flujo justo antes de la cadena de datos.
Esta funcin emplea el orden de bytes del flujo para leer datos.
Si especifica un puntero en lugar de un flujo, los datos sern escritos directamente en la direccin de
memoria especificada por el puntero.
Si intenta escribir en una direccin de memoria prohibida, obtendr un error. El intrprete no fallar.

Funciones Aritmticas
Abs

Devuelve el valor absoluto de un nmero.

DEC

Decrementa una variable.

Frac

Devuelve la parte fraccional de un nmero.

INC

Incrementa una variable.

Int

Devuelve la parte entera de un nmero.

Max

Devuelve el nmero mayor.

Min

Devuelve el nmero menor.

Round

Redondea un nmero.

Sgn

Devuelve el signo de un nmero.

Funciones de Cadena
Asc

Devuelve el cdigo ASCII de un carcter en una cadena.

Chr$

Devuelve un carcter a partir de su cdigo ASCII.

InStr

Busca una cadena dentro de otra.

LCase$

Convierte una cadena a minsculas.

Left$

Devuelve los primeros caracteres de una cadena.

Len

Devuelve la longitud de una cadena.

LTrim$

Elimina espacios en blanco de la parte inicial de una cadena.

Mid$

Devuelve parte de una cadena.

Replace$

Reemplaza, dentro de una cadena, una subcadena por otra.

Right$

Devuelve los ltimos caracteres de una cadena.

RInStr

Busca una cadena dentro de otra empezando por su final.

RTrim$

Elimina espacios en blanco de la parte final de una cadena.

Space$

Devuelve una cadena que contiene slo espacios.

Split

Divide una cadena en subcadenas.

String$

Devuelve la misma cadena concatenada varias veces.

Subst$

Sustituye cadenas en un patrn.

Trim$

Elimina espacios en blanco del final de una cadena.

UCase$

Convierte una cadena a maysculas.

Funciones de Conversin
CBool

Convierte un valor en Boolean.

CByte

Convierte un valor en Byte.

CDate

Convierte un valor en Date.

CFloat

Convierte un valor en Float.

CInt

Convierte un valor en Integer.

CLong

Convierte un valor en Long.

Conv$

Convierte una cadena de un juego de caracteres a otro.

CShort

Convierte un valor en Short.

CSng

Convierte un valor en Single.

CStr

Convierte un valor en String.

DConv$

Convierte una cadena del juego de caracteres del sistema a UTF-8 (juego de caracteres de la interfaz
grfica).

SConv$

Convierte una cadena desde el juego de caracteres UTF-8 (el empleado en la interfaz grfica) al
juego de caracteres del sistema.

Str$

Convierte un nmero o fecha en una cadena.

Val

Convierte una cadena en un nmero o fecha.

Funciones de Fecha y Hora


Date

Devuelve la fecha sin el componente de hora.

DateAdd

Aade un periodo de tiempo a la fecha dada.

DateDiff

Devuelve el periodo de tiempo entre dos fechas.

Day

Devuelve el da de un valor Date.

Hour

Devuelve el nmero de horas de un valor Date.

Minute

Devuelve el nmero de minutos de un valor Date.

Month

Devuelve el nmero de mes de un valor Date.

Now

Devuelve la fecha y hora actuales.

Second

Devuelve los segundos de un valor Date.

Time

Devuelve la parte de hora de un valor Date.

Timer

Devuelve el nmero de segundos transcurridos desde que se inici el programa.

Week

Devuelve el nmero de semana de un valor Date.

WeekDay

Devuelve el nmero de da en la semana de un valor Date.

Year

Devuelve el ao de un valor Date.

Funciones de Formateo
Bin$

Formatea un nmero en binario.

Format$

Formatea un nmero o fecha.

Hex$

Formatea un nmero en hexadecimal.

Funciones Miscelneas
Array

Crea y devuelve una matriz.

Funciones para Archivos y Carpetas


Access

Comprueba los permisos de acceso a un archivo.

COPY

Copia un archivo.

DFree

Devuelve el espacio libre en un dispositivo.

Dir

Devuelve el contenido de una carpeta.

IsDir

Devuelve si la ruta apunta a una carpeta.

KILL

Elimina un archivo.

LINK

Crea un enlace simblico.

MKDIR

Crea una carpeta.

RDir

Devuelve el resultado de una carpeta recursivamente.

RENAME

Renombra o mueve un archivo o carpeta.

RMDIR

Elimina una carpeta vaca.

Stat

Obtiene informacin sobre un archivo.

Temp$

Crea nombres de archivos temporales.

Funciones para Comprobar Caracteres


IsAscii

Comprueba si una cadena contiene slo caracteres ASCII.

IsBlank

Comprueba si una cadena contiene slo caracteres de espacio o tabulaciones.

IsDigit

Comprueba si una cadena contiene slo dgitos.

IsHexa

Comprueba si una cadena contiene slo dgitos hexadecimales.

IsLCase

Comprueba si una cadena contiene slo letras minsculas.

IsLetter

Comprueba si una cadena contiene slo letras.

IsPunct

Comprueba si una cadena contiene slo caracteres no alfanumric

IsSpace

Comprueba si una cadena contiene slo caracteres de espacio.

IsUCase

Comprueba si una cadena contiene slo letras maysculas.

Funciones para Tipos de Datos


IsBoolean

Devuelve si una expresin pertenece al tipo Boolean.

IsByte

Devuelve si una expresin pertenece al tipo Byte.

IsDate

Devuelve si una expresin pertenece al tipo Date.

IsFloat

Devuelve si una expresin pertenece al tipo Float.

IsInteger

Devuelve si una expresin pertenece al tipo Integer.

IsLong

Devuelve si una expresin pertenece al tipo Long.

IsNull

Devuelve si una expresin es nula (NULL).

IsNumber

Devuelve si una expresin es un nmero.

IsObject

Devuelve si una expresin pertenece al tipo Object.

IsShort

Devuelve si una expresin pertenece al tipo Short.

IsSingle

Devuelve si una expresin pertenece al tipo Single.

IsString

Devuelve si una expresin pertenece al tipo String.

TypeOf

Devuelve el tipo de valor de una expresin.

Funciones Sobre Nmeros Aleatorios


Randomize

Inicializa la semilla de generacin de nmeros pseudo aleatorios.

Rnd

Devuelve un nmero pseudo aleatorio.

Funciones Trigonomtricas
ACos

Calcula el arcocoseno de un nmero.

ACosh

Calcula el arcocoseno hiperblico de un nmero.

Ang

Calcula la coordenada "ngulo polar" para dos coordenadas cartesianas.

ASin

Calcula el el arcoseno de un nmero.

ASinh

Calcula el arcoseno hiperblico de un nmero.

ATan

Calcula la arcotangente de un nmero.

ATan2

Calcula la arcotangente de dos nmeros.

ATanh

Calcula la arcotangente hiperblica de un nmero.

Cos

Calcula el coseno de un ngulo.

Cosh

Calcula el coseno hiperblico de un ngulo.

Deg

Convierte radianes a grados.

Hyp

Calcula la hipotenusa de un tringulo.

Mag

Calcula la coordenada "distancia polar" para dos coordenadas cartesianas.

Pi

Devuelve o un mltiplo de .

Sin

Calcula el seno de un ngulo.

Sinh

Calcula el seno hiperblico de un ngulo.

Tan

Calcula la tangente de un ngulo.

Tanh

Calcula la tangente hiperblica de un ngulo.

Rad

Convierte grados en radianes.

Funciones acerca de Logartmos y Exponentes


Cbr

Raz cbica

Exp

Exponente

Exp2

2^x

Exp10

10^x

Expm

Exp(x) - 1

Log

Logaritmo neperiano

Log2

Logaritmo en Base 2

Log10

Logaritmo decimal

Logp

Log(1+x)

Sqr

Raz cuadrada

Gestin de errores
CATCH

Captura un error en una funcin.

DEBUG

Muestra en consola un mensaje de depuracin.

ERROR

Indica si ocurrin un error, o muestra un mensaje de error.

Error

La clase esttica Error.

FINALLY

Ejecuta un bloque de cdigo en una funcin, incluso si hubo un error.

TRY

Intenta ejecutar una orden, sin disparar un error.

Gestin de Eventos
EVENT

Declara un evento.

RAISE

Dispara un evento.

Object.Attach Enlaza un evento con su gestor de eventos.


Object.Detach Separa un evento de su gestor de eventos.
STOP EVENT

Cancela un evento.

WAIT

Llama al lazo de eventos hasta que haya pasado un tiempo indicado.

Gestin de Funciones Externas


Alloc

Reserva un bloque de memoria.

EXTERN

Declara una funcin externa.

Free

Libera un bloque de memoria reservado con Alloc.

LIBRARY

Define la librera donde se sitan las funciones externas.

Realloc

Recorta o expande el bloque de memoria reservado con Alloc.

StrPtr

Devuelve una copia de una cadena terminada en cero, situada en la direccin de memoria dada.

Gestin de Objetos y Clases


CLASS

Declara el uso de una clase.

Class

Gran cantidad de mtodos estticos para obtener informacin de una clase.

CREATE

Declara una clase como "auto-instanciable".

EXPORT

Declara una clase como exportada.

INHERITS

Hace que una clase herede de otra sus propiedades, mtodos y eventos.

LAST

Devuelve una referencia al ltimo objeto que ha disparado un evento.

ME

Devuelve una referencia al objeto actual.

NEW

Instancia un objeto.

New

Instancia un objeto con una clase que se especifica dinmicamente.

Object

Gran cantidad de mtodos esttios relativos a la gestin de un objeto.

SUPER

Devuelve una referencia al objeto actual que utilizar la implementacin de los smbolos pblicos
de la clase padre.

Gestin de Procesos
EXEC

Ejecuta un proceso externo.

SHELL

Ejecuta un comando externo en una shell.

Lazo de Eventos
Cuando un programa Gambas ha terminado de ejecutar su funcin de inicio Main(), entra en el llamado lazo
de eventos o event loop.
El programa se encontrar dentro de este lazo o bucle mientras haya:

un Process corriendo.
un Timer habilitado.
un File siendo vigilado.
una ventana abierta.

En este lazo, el programa procesar cualquier evento disparado por cualquier objeto, y para cada evento,
llamar a su correspondiente /def/eventhandler.
Puede llamar de forma recursiva al lazo de eventos usando la instruccin WAIT. Esto puede conllevar una
recursin infinita, pero es el nico modo de refrescar la interfaz de usuario durante la ejecucin de un bucle.

Matrices Nativas
Gambas dispone de un tipo predefinido de matriz para cada tipo de datos nativo.
El nombre de estas clases es el nombre del tipo de datos que almacenan seguido de un corchete abierto y otro
cerrado.
Byte[]

Matriz de valores Byte.

Short[]

Matriz de valores Short.

Integer[] Matriz de valores Integer.


Long[]

Matriz de valores Long.

Single[] Matriz de valores Single.


Float[]

Matriz de valores Float.

Date[]

Matriz de valores Date.

String[]

Matriz de valores String.

Object[] Matriz de valores Object.


Variant[] Matriz de valores Variant.

Native Container Classes


Gambas interpreter offers you three kinds of native container classes:

Arrays
An Array is a set of values indexed by an Integer that are consecutive in memory.
All the values in an array have the same datatype, and there is one array class for each native datatype, except
Boolean.
See Native Arrays for more information.
Array can be multi-dimensional, i.e. values are indexed by more than one Integer.
If an array has one dimension, then it can be shrinked or expanded dynamically, with the Resize method.

Lists
A List is a double-linked list of values indexed by an Integer, each one being stored separately in memory.
Only Variant values can be stored in a List.
The List maintains a internal pointer so that finding a position in the list does not imply iterates all the
elements.

Collections
A Collection is a set of values indexed by a String.
Only Variant values can be stored in a Collection.
The values are internally stored in a hash table that grows dynamically when more and more elements are
inserted in it.

Which one use ?


Here is a short comparison between the three kind of container classes:
Array

List

Collection

Internal storage Memory block. Double linked-list. Hash table.


Key datatype

Integer

Integer

String

Access
speed

Insertion
speed

Fastest

Fast

Fast

The access is immediate.

Accessing the first, last,


previous or next element is
immediate. Otherwise the list
is enumerated.

The key must be compared


with all other keys having
the same hash code.

Slow

Fastest

Fast

The memory block is resized if


needed. And inserting in the
middle of the array needs moving
part of the memory block.

Once the position is found, the The key hash code gives a
insertion is immediate.
index into a linked list of
memory slots.
The hash table have to be
resized and recalculated
sometimes to keep the
access fast.

Deletion
speed

Slow

Fastest

Fast

The memory block is resized if


Once the element is found, the Once the element is found,
needed. And deleting in the middle deletion is immediate.
the deletion is immediate.
of the array needs moving part of
the memory block.
The hash table have to be
resized and recalculated
sometimes to keep the
access fast.

Operadores Aritmticos
Numero + Numero
-

Numero

Suma dos nmeros.


Calcula el signo opuesto de un nmero. El opuesto de cero es cero.

Numero - Numero

Resta dos nmeros.

Numero * Numero

Multiplica dos nmeros.

Numero / Numero

Divide dos nmeros. Un error Divisin por cero (#26) ocurrir si el valor del divisor es
cero.

Numero ^ Potencia

Eleva Numero a la Potencia indicada.


Por ejemplo, 4 ^ 3 = 64

Numero \ Numero

Calcula el cociente de la divisin de dos nmeros. Un error Divisin por cero (#26)
ocurrir si el valor del divisor es cero.

Numero DIV Numer


o

A \ B = Int(A / B)

Numero MOD
Numero

Calcula el resto de la divisin de dos nmeros. Un error Divisin por cero (#26)
ocurrir si el valor del divisor es cero.

Operadores de Asignacin
Variable = Expresin

Asignacin directa.

Variable += Expresin

Asignacin con suma.


Es un sinnimo de
Variable = Variable + Expresin

Variable -= Expresin

Asignacin con sustraccin.


Es un sinnimo de

Variable = Variable - Expresin


Variable *= Expresin

Asignacin con multiplicacin.


Es un sinnimo de
Variable = Variable * Expresin

Variable /= Expresin

Asignacin con divisin.


Es un sinnimo de

Variable = Variable / Expresin


Variable \= Expresin

Asignacin con divisin entera.


Es un sinnimo de
Variable = Variable \ Expresin

Variable &= Expresin

Asignacin con concatenacin de cadenas.


Es un sinnimo de
Variable = Variable &= Expresin

Variable &/= Expresin

Asignacin con concatenacin de rutas.


Es un sinnimo de
Variable = Variable &/= Expresin

Operadores de Cadena
Cadena & Cadena Concatena dos cadenas.
Cadena &/
Cadena

Concatena dos cadenas que contienen nombres de archivo. Aade un separador de ruta
entre dos cadenas si es necesario.

Cadena LIKE
Numero

Comprueba si una cadena concuerda con un patrn.

Operadores Lgicos
Nmero AND
Nmero

Calcula el "y lgico" del valor binario de dos nmeros.

Nmero

Calcula el "no lgico" del valor binario de un nmero.

NOT

Nmero OR Nmero

Calcula el "o lgico" del valor binario de dos nmeros.

Nmero XOR
Nmero

Calcula el "o exclusivo lgico" del valor binario de dos nmeros.

Tipos de Datos
Tipo de
dato

Valor por
defecto

Descripcin

Tamao en
memoria

Boolean

Verdadero o falso.

FALSE

1 byte

Byte

0...255

1 byte

Short

-32.768...+32.767

2 bytes

Integer

-2.147.483.648...+2.147.483.647

4 bytes

Long

-9.223.372.036.854.775.808...+9.223.372.036.854.775.807

8 bytes

Single

Como el tipo float de C.

0.0

4 bytes

Float

Como el tipo double de C.

0.0

8 bytes

Date

Fecha y hora, cada una almacenada en un entero.

NULL

8 bytes

String

Una cadena con un nmero variable de caracteres.

NULL

4 bytes

Variant

Cualquier tipo de dato.

NULL

12 bytes

Object

Referencia annima a un objeto.

NULL

4 bytes

Pointer

Una direccin de memoria.

4 bytes

gb.compress - Librera de compresin


Este componente permite comprimir y descomprimir archivos, as como leer y escribir en archivos
comprimidos utilizando los mtodos habituales en flujos. Tambin permite comprimir y descomprimir
cadenas en memoria.
Actualmente, el componente puede utilizar dos algoritmos, gracias a las libreras zlib y libbzip2. Los
programas ms conocidos que utilizan estos algoritmos son las utilidades de lnea de comandos "gzip" y
"bzip2", por lo que podr utilizar archivos generados por estas utilidades.
Este componente emplea internamente las libreras "libz" y "libbz2", por lo que debe tenerlas instaladas en
los equipos que hagan uso del componente de compresin. Si slo desea utilizar uno de los dos algoritmos,
no es necesario que instale ambas libreras.
Ms informacin sobre el funcionamiento interno:
http://www.gzip.org/zlib/
http://sources.redhat.com/bzip2/
Todas las distribuciones habituales de GNU/Linux incluyen paquetes con estas libreras, FreeBSD y otros
sistemas Unix, tambin. Ambos compresores estn libres de patentes, y actualmente pueden ser utilizados
incluso en programas que no sean "cdigo abierto" u "open source", 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 Bases de Datos


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

Connection
DB
/comp/gb.db/database
/comp/gb.db/field
/comp/gb.db/index
/comp/gb.db/result
/comp/gb.db/resultfiel
d
/comp/gb.db/table
/comp/gb.db/user
Este componente le permite acceder a los siguientes sistemas gestores de bases de datos:

PostgreSQL
MySQL
SQLite
ODBC

Tanto PostgreSQL como MySQL son sistemas de bases de datos cliente/servidor, lo que significa que la
conexin se realiza sobre un proceso servidor.
Por el contrario, SQLite est basado en un archivo o datos en memoria, por lo que no hay proceso servidor al
que conectarse. This means that the user may need to include a fully qualified path to the database file if the
default is not satisfactory. See the Connection class for more information.
Note that this component creates an intermediate layer between the specific server and your program, so that
you can use exactly the same code whatever database backend you decide to use.
This works only if:

You create your database by using the database manager or by using this component.
You use the /comp/db/find, /comp/db/create and /comp/db/edit methods.
You don't put SQL values directly in the request, but use the substitution feature of the previous
methods.
You don't use the /comp/db/exec method, that lets you send SQL request directly to the backend, so
that you can access its the specific features.

If you don't need database independance, do as you like!

gb - Clases nativas internas de Gambas


Este componente contiene todas las clases includas dentro del intrprete por defecto.
Clases

Application
/comp/gb/boolean[]
Byte[]
Class
/comp/gb/classes
Collection
/comp/gb/component
/comp/gb/component
s
Date[]
/comp/gb/enum
Error
File
Float[]
Integer[]
Long[]
Object

Object[]
Param
Process
Short[]
Single[]
/comp/gb/sta
t
Stream
String
String[]
System
User
Variant[]
gb

Application (gb)
Esta clase entrega informacin acerca de la aplicacin que est ejecutndose, y dota de acceso al entorno del
proceso as como a la lnea de comandos del proceso.
Smbolos

Esta clase es esttica.


Propiedades
Args /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

Byte[] (gb)
Esta clase implementa una matriz dinmica de valores Byte.
Smbolos

Esta clase proviene de .Array.


Esta clase es Instanciable.
Esta clase acta como una matriz Lectura/escribir.
Esta clase es enumerable con la palabra clave FOR EACH.
Propiedades
/comp/gb/.array/bounds Count Data
/comp/gb/.array/dim Length Max

Mtodos
Add Clear Copy /comp/gb/byte[]/fill Find Insert Pop
Push Read Remove Resize Reverse Sort Write

Class (gb)
This class depicts a class used by the interpreter.
This class can be native, i.e. implemented in a component, or a class written in Gambas.
Smbolos

Esta clase no es instanciable.


Esta clase acta como una matriz Slo lectura.
Propiedades
/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

Mtodos
/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)
Implementa una tabla hash (en la cual se pueden buscar rpidamente pares clave-valor), en la que los
elementos tienen una clave de tipo cadena y los valores son de tipo variant.
Cuando no hay nada asociado a una clave, se emplea el valor NULL. En consecuencia, asociar el valor
NULL con una clave, tiene el mismo efecto que eliminarlo de la coleccin.
El tamao de la tabla hash interna crece automticamente al insertar datos.
Smbolos

Esta clase es Instanciable.


Esta clase acta como una matriz Lectura/escribir.
Esta clase es enumerable con la palabra clave FOR EACH.
Propiedades
Mtodos
Count Key
Add Clear Exist Remove
Length

Das könnte Ihnen auch gefallen