Gambas
Índice
Referencia de Gambas
Descripciones del Lenguaje.
Índice Alfabético del Lenguaje
Componentes
Librerías
Índice del Lenguaje por Categorías
Índice alfabético del lenguaje
Tutoriales
Instalación (Librerías necesarias)
Lo más básico de Gambas
Interfaz gráfica
Varios
Aplicaciones en varios idiomas
Artículos Gambas
Diferencia entre VB
Como escribir componentes
Introducción Visual a Gambas
¿Cómo puedo convertir mi proyecto VB a Gambas?
¿Cómo se hace para… ?
Asignación
Asigna el valor de una expresión a uno de los siguientes elementos:
Algunas instrucciones que devuelven valores pueden emplear también la sintaxis de asignación: EXEC,
NEW, OPEN, RAISE, SHELL.
EJEMPLO
iVal = 1972
Name = "[/def/gambas]"
hObject.Property = iVal
cCollection[sKey] = Name
...
Constantes de Cadena para ser traducidas. ("¡Este programa está muy bien!")
Constante nula / cadena vacía. NULL
Las constantes de cadena pueden contener los siguientes caracteres de escape:
Puede escribir una constante de cadena dividida en varias partes sucesivas. Por ejemplo,
Chr$
Sintaxis
Caracter = Chr$ ( Código )
Caracter = Chr ( Código )
¡Precaución! Gambas utiliza UTF-8 como codificación interna, por lo que un caracter con código 128
o superior no tiene el mismo significado que en otras codificaciones, como ISO 8859-1.
Ejemplo
Ejemplo
PRINT Chr$(65)
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 (gb)
Esta clase estática incluye todas las constantes básicas de Gambas empleadas por un gran número de
funciones.
Símbolos
Esta clase es estática.
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 función Stat().
Constantes de cadena
gb.NewLine Caracter de "Nueva Línea". Equivalente a Chr$(10)
gb.Tab Caracter de Tabulación. Equivalente a Chr$(9)
Tipos de ordenación
Constantes empleadas en el método Sort de las Matrices.
Días de la semana
Estas constantes son valores devueltos por la función WeekDay().
gb.Monday Lunes
gb.Tuesday Martes
gb.Wednesday Miércoles
gb.Thursday Jueves
gb.Friday Viernes
gb.Saturday Sábado
gb.Sunday Domingo
Formatos numéricos predefinidos
gb.GeneralNumber Escribe en número con 12 dígitos decimales. Usa formato científico si su valor absoluto
es menor que 10-4 o mayor que 107.
gb.Fixed Equivalente a "0.00"
gb.Percent Equivalente a "###%"
gb.Scientific Escribe un número con su exponente y 8 dígitos decimales.
Formatos misceláneos
gb.Standard Emplee gb.GeneralNumber para formatear números y gb.GeneralDate para fechas y horas.
Estructuras de Control de Bucles
BREAK Abandona un bucle inmediatamente.
CONTINUE Salta a la siguiente iteración de un bucle.
DO ... LOOP Bucle infinito.
FOR ... NEXT Bucle con contador.
FOR EACH ... NEXT Bucle de enumeración.
BREAK
Sintaxis
BREAK
Abandona un bucle inmediatamente.
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 iteración 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
Uno Dos 3 4 5 6 7 8 9 10
DO
Sintaxis
DO [ WHILE Expresión ]
Comienza un bucle infinito delimitado por las instrucciones DO ... LOOP. Si se especifica WHILE, el bucle
se detendrá cuando la Expresión sea falsa. Si la expresión 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 = Expresión TO Expresión [ STEP Expresión ]
...
NEXT
Repite un bucle mientras se incrementa una variable.
Tenga en cuenta que la variable ha de ser:
• Numérica, es decir, un byte, un short, un integer o un número real float o single.
• Una variable local.
Tenga en cuenta también que si la expresión 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 Expresión
…
NEXT
Repite un bucle mientras se enumera un objeto.
Expresión debe ser una referencia a un objeto enumerable: por ejemplo, una colección, o una matriz.
Ejemplo
DIM Dict AS NEW Collection
DIM Elemento AS String
Dict["Azul"] = 3
Dict["Rojo"] = 1
Dict["Verde"] = 2
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 Expresión
DIM I AS Integer
REPEAT
PRINT Timer
UNTIL Timer > 10
END
WHILE
Sintaxis
Sintaxis
WHILE Expresión
Da comienzo a un bucle delimitado por las instrucciones WHILE ... WEND.
El bucle se repite mientras la Expresión sea cierta.
Si la expresión 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 Misceláneas
GOTO Salto incondicional.
QUIT Cierra el programa.
RETURN Retorna de una función o procedimiento.
STOP Simula un punto de interrupción.
WITH ... END WITH Selector de objeto por defecto.
GOTO
Sintaxis
GOTO Etiqueta
QUIT
Sintaxis
QUIT
RETURN
Sintaxis
RETURN [ Expresión ]
STOP
Sintaxis
STOP
Detiene el programa y lanza el depurador, del mismo modo que un punto de interrupción en la línea actual.
Esta instrucción no hace nada si el programa no está siendo depurado.
Ejemplo
'Parar si la siguiente condición se cumple
IF Name = "Gates" THEN STOP
WITH
Sintaxis
Sintaxis
WITH Objeto
...
END WITH
Entre las instrucciones WITH y END WITH, una expresión 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"
Choose
Sintaxis
Valor = Choose (Elección , Resultado #1 , Resultado #2 [ , ... ] )
Esta función devuelve el valor de uno de sus argumentos Resultado #i , de acuerdo con el valor de Elección.
• Si Elección es 1, se devuelve Resultado #1.
• Si Elección es 2, se devuelve Resultado #2, y así en adelante...
• Si Elección es menor o igual a cero, o no hay valor especificado para el valor de Elección, 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.
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."
Division by zero
IF
Sintaxis
IF Expresión [ { AND IF | OR IF } Expresión ... ] THEN
...
[ ELSE IF Expresión [ { AND IF | OR IF } Expresión ... ] THEN
... ]
[ ELSE
... ]
ENDIF
Estructura condicional de control.
Si utiliza varias expresiones de comprobación 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 comprobación 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 línea.
DIM k AS Integer
FOR k = 1 TO 10
NEXT
1 2 3 4
¡Llegamos al 5!
6 7 8 9 10
SELECT
s
Sintaxis
SELECT [ CASE ] Expresión
END SELECT
Selecciona una expresión a comparar, y ejecuta el código encerrado en la expresión correspondiente CASE.
Si no concuerda ninguna de las expresiones CASE, se ejecutará el código dentro de la expresión DEFAULT
o CASE ELSE.
Una expresión CASE es una lista de valores simples o intervalos entre dos valores separados por la palabra
clave TO.
Ejemplo
'Desea calcular una función aleatoria.
'Repite una función aleatoria mil veces para
'conocer cuantas veces aparecen los números
'1, 2, 3, 4, 5 o 6.
DIM x AS Integer
DIM w AS Integer
DIM a AS Integer
DIM b AS Integer
DIM c AS Integer
DIM d AS Integer
DIM e AS Integer
DIM f AS 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
Eof
Sintaxis
Sintaxis
Booleano = Eof ( [ Flujo ] )
FLUSH
Sintaxis
Sintaxis
FLUSH [ [ # ] Flujo ]
INPUT
Sintaxis
Sintaxis
INPUT [ # Flujo , ] Variable [ , Variable ... ]
Lee el Flujo, y convierte elementos separados por caracteres de espacio o retornos de carro con la función
Val antes de situar el valor en las variables.
Si no se especifica el flujo, se lee de la entrada estándar.
INPUT FROM
Syntax
Sintaxis
INPUT FROM Stream
LINE INPUT
Sintaxis
LINE INPUT [ # Flujo , ] Variable
Lee una línea entera de texto del flujo indicado.
Si no se especifica un flujo, se utilizará la entrada estándar.
No emplee esta instrucción 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
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 )
Si el flujo no es un archivo, es decir, un objeto Process o un Socket, retorna el número de bytes que pueden
ser leídos de una sola vez.
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 The requested access to the file is not allowed, or search permission is denied for one of
(#43) 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 File name refers to a directory.
(#46)
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 The system ran out of memory.
(#1)
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... A component used as a directory in File name is not, in fact, a directory.
(#49)
System error... Other possible system errors:
(#42)
• 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
...
END
Example
' Reading data from a BMP file, known to use little-endian format :
PRINT
Sintaxis
Sintaxis
PRINT [ # Flujo , ] Expresión [ { ; | ;; | , } Expresión ... ] [ { ; | ;; | , } ]
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
Seek
Sintaxis
Sintaxis
Posición = Seek ( Flujo )
UNLOCK
Sintaxis
Sintaxis
UNLOCK [ # ] Flujo
WRITE
Sintaxis
WRITE [ # Flujo , ] Expresión [ , Longitud ]
WRITE [ # Puntero , ] Expresión [ , Longitud ]
Esta función emplea el orden de bytes del flujo para leer datos.
Si especifica un puntero en lugar de un flujo, los datos serán escritos directamente en la dirección de
memoria especificada por el puntero.
Si intenta escribir en una dirección de memoria prohibida, obtendrá un error. El intérprete no fallará.
Funciones Aritméticas
Abs Devuelve el valor absoluto de un número.
DEC Decrementa una variable.
Frac Devuelve la parte fraccional de un número.
INC Incrementa una variable.
Int Devuelve la parte entera de un número.
Max Devuelve el número mayor.
Min Devuelve el número menor.
Round Redondea un número.
Sgn Devuelve el signo de un número.
Funciones de Cadena
Asc Devuelve el código ASCII de un carácter en una cadena.
Chr$ Devuelve un carácter a partir de su código ASCII.
InStr Busca una cadena dentro de otra.
LCase$ Convierte una cadena a minúsculas.
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 sólo espacios.
Split Divide una cadena en subcadenas.
String$ Devuelve la misma cadena concatenada varias veces.
Subst$ Sustituye cadenas en un patrón.
Trim$ Elimina espacios en blanco del final de una cadena.
UCase$ Convierte una cadena a mayúsculas.
Funciones de Conversión
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
gráfica).
SConv$ Convierte una cadena desde el juego de caracteres UTF-8 (el empleado en la interfaz gráfica) al
juego de caracteres del sistema.
Str$ Convierte un número o fecha en una cadena.
Val Convierte una cadena en un número o fecha.
Funciones de Formateo
Bin$ Formatea un número en binario.
Format$ Formatea un número o fecha.
Hex$ Formatea un número en hexadecimal.
Funciones Misceláneas
Array Crea y devuelve una matriz.
Funciones Trigonométricas
ACos Calcula el arcocoseno de un número.
ACosh Calcula el arcocoseno hiperbólico de un número.
Ang Calcula la coordenada "ángulo polar" para dos coordenadas cartesianas.
ASin Calcula el el arcoseno de un número.
ASinh Calcula el arcoseno hiperbólico de un número.
ATan Calcula la arcotangente de un número.
ATan2 Calcula la arcotangente de dos números.
ATanh Calcula la arcotangente hiperbólica de un número.
Cos Calcula el coseno de un ángulo.
Cosh Calcula el coseno hiperbólico de un ángulo.
Deg Convierte radianes a grados.
Hyp Calcula la hipotenusa de un triángulo.
Mag Calcula la coordenada "distancia polar" para dos coordenadas cartesianas.
Pi Devuelve π o un múltiplo de π.
Sin Calcula el seno de un ángulo.
Sinh Calcula el seno hiperbólico de un ángulo.
Tan Calcula la tangente de un ángulo.
Tanh Calcula la tangente hiperbólica de un ángulo.
Rad Convierte grados en radianes.
Gestión de errores
CATCH Captura un error en una función.
DEBUG Muestra en consola un mensaje de depuración.
ERROR Indica si ocurrión un error, o muestra un mensaje de error.
Error La clase estática Error.
FINALLY Ejecuta un bloque de código en una función, incluso si hubo un error.
TRY Intenta ejecutar una orden, sin disparar un error.
Gestión 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.
Lazo de Eventos
Cuando un programa Gambas ha terminado de ejecutar su función de inicio Main(), entra en el llamado lazo
de eventos o event loop.
• 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 instrucción WAIT. Esto puede conllevar una
recursión infinita, pero es el único modo de refrescar la interfaz de usuario durante la ejecución 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.
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.
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.
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.
The values are internally stored in a hash table that grows dynamically when more and more elements are
inserted in it.
Operadores Aritméticos
Numero + Numero Suma dos números.
- Numero Calcula el signo opuesto de un número. El opuesto de cero es cero.
Numero - Numero Resta dos números.
Numero * Numero Multiplica dos números.
Numero / Numero Divide dos números. Un error División 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 división de dos números. Un error División por cero (#26)
ocurrirá si el valor del divisor es cero.
Numero DIV Numero
A \ B = Int(A / B)
Numero MOD Numero Calcula el resto de la división de dos números. Un error División por cero (#26)
ocurrirá si el valor del divisor es cero.
Operadores de Asignación
Variable = Expresión Asignación directa.
Variable += Expresión Asignación con suma.
Es un sinónimo de
Variable = Variable + Expresión
Variable -= Expresión Asignación con sustracción.
Es un sinónimo de
Variable = Variable - Expresión
Variable *= Expresión Asignación con multiplicación.
Es un sinónimo de
Variable = Variable * Expresión
Variable /= Expresión Asignación con división.
Es un sinónimo de
Variable = Variable / Expresión
Variable \= Expresión Asignación con división entera.
Es un sinónimo de
Variable = Variable \ Expresión
Variable &= Expresión Asignación con concatenación de cadenas.
Es un sinónimo de
Variable = Variable &= Expresión
Variable &/= Expresión Asignación con concatenación de rutas.
Es un sinónimo de
Variable = Variable &/= Expresión
Operadores de Cadena
Cadena & Cadena Concatena dos cadenas.
Cadena &/ Concatena dos cadenas que contienen nombres de archivo. Añade un separador de ruta
Cadena entre dos cadenas si es necesario.
Cadena LIKE Comprueba si una cadena concuerda con un patrón.
Numero
Operadores Lógicos
Número AND Número Calcula el "y lógico" del valor binario de dos números.
NOT Número Calcula el "no lógico" del valor binario de un número.
Número OR Número Calcula el "o lógico" del valor binario de dos números.
Número XOR Número Calcula el "o exclusivo lógico" del valor binario de dos números.
Tipos de Datos
Tipo de Valor por Tamaño en
Descripción
dato defecto memoria
Boolean Verdadero o falso. FALSE 1 byte
Byte 0...255 0 1 byte
Short -32.768...+32.767 0 2 bytes
Integer -2.147.483.648...+2.147.483.647 0 4 bytes
Long -9.223.372.036.854.775.808...+9.223.372.036.854.775.807 0 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 número variable de caracteres. NULL 4 bytes
Variant Cualquier tipo de dato. NULL 12 bytes
Object Referencia anónima a un objeto. NULL 4 bytes
Pointer Una dirección de memoria. 0 4 bytes
gb.compress - Librería de compresión
Este componente permite comprimir y descomprimir archivos, así como leer y escribir en archivos
comprimidos utilizando los métodos habituales en flujos. También permite comprimir y descomprimir
cadenas en memoria.
Actualmente, el componente puede utilizar dos algoritmos, gracias a las librerías zlib y libbzip2. Los
programas más conocidos que utilizan estos algoritmos son las utilidades de línea de comandos "gzip" y
"bzip2", por lo que podrá utilizar archivos generados por estas utilidades.
Este componente emplea internamente las librerías "libz" y "libbz2", por lo que debe tenerlas instaladas en
los equipos que hagan uso del componente de compresión. Si sólo desea utilizar uno de los dos algoritmos,
no es necesario que instale ambas librerías.
http://www.gzip.org/zlib/
http://sources.redhat.com/bzip2/
Todas las distribuciones habituales de GNU/Linux incluyen paquetes con estas librerías, FreeBSD y otros
sistemas Unix, también. Ambos compresores están libres de patentes, y actualmente pueden ser utilizados
incluso en programas que no sean "código abierto" u "open source", si sigue todas las instrucciones
contenidas en sus licencias (léalas detenidamente para las versiones que planee utilizar).
Clases
/comp/gb.compress/compress
/comp/gb.compress/uncompress
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
conexión 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.
• 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.
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 dinámica de valores Byte.
Símbolos
Esta clase proviene de .Array.
Propiedades Métodos
/comp/gb/.array/bounds Count Data Add Clear Copy /comp/gb/byte[]/fill Find Insert Pop
/comp/gb/.array/dim Length Max 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.
Símbolos
Esta clase no es instanciable.
Esta clase actúa como una matriz Sólo lectura.
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 colección.
Propiedades Métodos
Count Key Length Add Clear Exist Remove