Tabla de Traducción de ordenes de VB6 a Gambas
De Libro Gambas
TABLA DE TRADUCCIÓN DE ORDENES DE VB6 A GAMBAS
Ejecucion
| Visual basic 6 | uso | Gambas 2 |
| VB6RUN.DLL | runtime | Gambas2-runtime (son varios archivos) |
Extensiones de archivo
| Visual basic 6 | uso | Gambas 2 |
| .frm | Formulario: código e interfaz gráfica | .form y .class (con el nombre del formulario) |
| .bas | Extensión de archivo indica que es un archivo de módulo, solo código | .module |
| .class | Extensión de archivo indica que es el archivo de clase solo código | .class |
| .vbp | Extensión de archivo indica que es el archivo de proyecto | no existe, para eso están la carpeta oculta ".gambas" |
| .frm | Extensión de archivo similar a un archivo de recursos
donde se guardan por ejemplo la imágenes de los picture box | Gambas guarda los archivos con sus nombres originales.jpg , .png, .txt,en la misma carpeta del proyecto o dentro de una subcarpeta,según como lo hayamos definido en el IDE de gambas,árbol de organización de nuestro proyecto |
| .resx | Extensión de archivo de recursos
se pueden guardar imágenes y sonidos | Gambas guarda los archivos con sus nombres originales.jpg , .png, .txt, en la misma carpeta del proyecto o dentro de una subcarpeta,según como lo hayamos definido en el IDE de gambas,árbol de organización de nuestro proyecto |
| Carpetas Ocultas | .gambas (guarda archivos bytecode)
.lang (guardar archivos .pot, que son traducciones de nuestra aplicación) | |
| .exe | en visual basic 6 es un binario pe puede ser del tipo pcode o nativo
en gambas Extensión Archivo ejecutable (bytecode) | .gambas
Nota: tiene que tener permisos de ejecución $chmod a+x nombre_archivo.gambas |
Manejo de carpetas y ficheros del sistema
| Visual basic 6 | uso | Gambas 2 |
| MKDIR Ruta | Crear una Carpeta | MKDIR Ruta |
| RMDIR Ruta | Borrar una Carpeta | RMDIR Ruta
(tiene que estar vacia) |
| Copiar un Archivo | COPY Ruta_Origen TO Ruta_Destino
' Ejemplo: Guarda el archivo de configuración de Gambas COPY User.Home &/ ".config/gambas/gambas.conf" TO "/mnt/save/gambas.conf.save" | |
| Mover un Archivo/Carpeta | Renombra o mueve un archivo o carpeta.
RENAME Antiguo_Nombre AS Nuevo_nombre | |
| KILL Ruta | Borrar un Archivo | KILL Ruta
TRY KILL "/tmp/testfile" |
| no existe funcion equivalente en VB& | ruta del usuario | user.home
Devuelve: /home/usuario
|
Para mas detalles vease: Funciones para Archivos y Carpetas
DIFERENCIAS
| Visual basic 6 | uso | Gambas 2 |
| end | VB final del programa uso opcional
Gambas 2 Se usa para cerrar los procedimientos y funciones
| ??????????????? no es opcional, hay que ponerlo |
| Option Explicit | obliga a declarar explícitamente todas las variables | no existe siempre las tienes que declarar |
constantes
| Visual basic 6 | uso | Gambas 2 |
| (Public|Private) Const nombre as tipo.variable = valor | valor constante. Se define solo dentro al inicio de módulos o clases | (Public|Private) Const nombre as tipo.variable = valor |
OPERADORES
| Visual basic 6 | gambas 2 | |
| ^ | Aritmetico Exponenciacion | ^ |
| - | Aritmetico Cambio de signo (operador unario) | - |
| * | Aritmetico multiplicacion | * |
| / | Aritmetico division | / |
| \ | Aritmetico division entera | DIV |
| mod | Aritmetico resto de una division entera | MOD |
| + | Aritmetico suma | + |
| - | Aritmetico resta | - |
| & | concatenacion | & (TEXTO) |
| + | concatenacion | no suma cadena de caracteres,
solo numero |
| = | relacional igual a | = |
| <> | relacional distinto | <> |
| < | relacional menor que | < |
| > | relacional mayor que | > |
| >= | relacional moyor o igual que | >= |
| <= | relacional menor o igual que | <= |
| like | otro compara dos expresiones de caracteres | Like
(ademas tambien patrones) http://www.gambasdoc.org/help/lang/like?es |
| is | comparar referencia a objetos | is
Devuelve si un objeto es una instancia de una clase, o uno de sus descendientes. |
| not | logico negacion | not |
| and | logico y | and |
| or | logico o inclusivo | or |
| xor | logico o exclusivo | xor |
| eqv | equivalencia opuesto a xor | |
| imp | implicacion (False si el primer operando es True y el segundo operando es False | |
FUNCIONES ESPECIALES
| Visual basic 6 | uso | Gambas 2 |
| doevents | VB6
no existe equivalente exacto en Gambas Procesa todos los mensajes de Windows que hay actualmente en la cola de mensajes. lo que permite desbloquear al gui del programa cuando se realizan calculos largos por ejemplo en bucles Gambas no existe equivalente exacto en VB6 Llama recursivamente al lazo de eventos. dando tiempo para ejecutar otros eventos permitiendo que el programa haga pausas que permitan al usuario interactuar con la gui Retardo es un número real. Así pues, para esperar 100ms, puede indicar: WAIT 0.1 | WAIT [ Retardo ]
ejemplos ' Espera 100ms, dejando que el usuario interactúe con la GUI WAIT 0.1 ' Espera, pero el usuario sólo puede observar lo que ocurre... WAIT |
call
VB6 | Transfiere el control a un Function, a un Sub o a un procedimiento de una biblioteca de vínculos dinámicos (DLL).
Normalmente utiliza la instrucción Call para llamar a una función o procedimiento que no devuelve un valor. Si el procedimiento devuelve un valor, la instrucción Call lo descarta. el uso de call es opcional sin embargo puede hacer mas legible el código ejemplo call function GAMBAS no existe equivalente | no existe |
Variables tipos
| Visual basic 6 | uso | Gambas 2 |
| boolean | variante booleana admite true o false | boolean |
| byte | entero 1 byte de largo | byte |
| integer | entero -32765 a 32765. | short (del -32.768 a +32.767) |
| entero mayor rango | Integer -2.147.483.648...+2.147.483.647
Long -9.223.372.036.854.775.808...+9.223.372.036.854.775.807 | |
| double | coma flotante | single Single (parecido al float en C, 4 bytes)
float (parecido al double en C, 8 bytes) |
| string | cadena | string |
| date | de fecha y/o hora | Date |
| variant | variante se adapta automáticamente según como interprete el valor | variant |
| object | referencia a objeto | Object |
| no existe | dirección de memoria | Pointer |
Declaración de variables y ambito
| Visual basic 6 | uso | Gambas 2 |
| dim variable | declara variable ámbito restringido si se omite el tipo de dato es variant por defecto | dim variable as tipo (tipos de Gambas)
dim variable as New tipo[] (arrays) (ámbito de una subrutina o función) |
| dim variable as string | declara variable ámbito restringido de tipo string | dim variable as string (una cadena)
dim variable as New string[] (un arrays de cadenas) |
| public | declara variable ámbito publico solo en módulos | public nombre as tipo (publica para todo el proyecto (formularios, clases y otros módulos) |
| global | declara variable ámbito global solo en módulos | no exiten, pero hay un truco que es crearla en un módulo (por ejemplo un módulo llamado "var") y luego llamarla como var.nombrevariable |
| private | declara variable ámbito privado | private (ámbito de la clase, función o subrutina) |
Procedimientos y funciones
| Visual basic 6 | uso | Gambas 2 |
function nombre_funcion () as tipo
nombre_funcion= valor end function | funcion sin argumentos en vb6 no se usa return
no es válido en gambas, hay que usar return | function nombre_funcion () as tipo
return= valor end function |
function nombre_funcion (argumnto1 as tipo, argumento2 as tipo) as tipo
nombre_funcion= valor end function | funcion con argumentos | (Public/Private) Function nombre_funcion (argumnto1 as tipo, {OPTIONAL} argumento2 as tipo) as tipo
Return= valor end |
sub nombre_procedimiento()
end sub | procedimiento sin argumentos | (Public/Private) Sub nombre_procedimiento()
end |
sub nombre_procedimiento(argumento1, argumento2 )
end sub | procedimiento con argumentos | (Public/Private) sub nombre_procedimiento(argumento1 as tipo, {OPTIONAL} argumento2 as tipo,.... )
end |
| nombre_procedimiento(argumento1 as tipo, argumento2 as tipo,.... ) | llamar a un procedimiento | nombre_procedimiento(argumento1 as tipo, argumento2 as tipo,.... ) |
| variable=nombre_procedimiento(argumento1 as tipo, argumento2 as tipo,.... ) | llamar a una funcion | variable=nombre_procedimiento(argumento1 as tipo, argumento2 as tipo,.... ) |
Cadenas
| Visual basic 6 | uso | Gambas 2 |
| Replace(expresion, buscar, reemplazarcon[, comienza[, cuenta[, compara]]]) | reemplazar una subcadena dentro de una cadena:
VB6 puede omitirse el signo $ replace$ o replace VB6 expresion: Es la cadena original buscar: las subcadenas que queremos reemplazar reemplazarcon: lo que se pondrá cuando se halle la cadena a reemplazar comienza: (opcional), posición dentro de expression a partir de la cual empezaremos a procesar la cadena cuenta: (opcional), número de sustituciones que queremos realizar, el valor por defecto es -1, lo que indica que se harán todas las sustituciones posibles. compara: (opcional), lo dicho en las otras funciones, el tipo de comparación a realizar: binaria, de cadena o según el Option Compare xxx | Replace$ ( Cadena , Patrón , CadenaReemplazo )
ejemplo: PRINT Replace$("Gambas is a cool basic", "bas", "BAS") genera la siguiente salida: GamBAS is a cool BASic
|
| InStr ( Cadena AS String , Subcadena AS String [ , Inicio AS Integer ] ) | Buscar una cadena dentro de otra a partir del caracter numero inicio
(devuelve la posicion (un integer) donde esta la subcadena) VB6 puede omitirse el signo $ InStr$ o InStr | InStr ( Cadena AS String , Subcadena AS String [ , Inicio AS Integer ] )
|
| strComp(str1, str2) | compara cadenas
VB6 devuelve -1, 0, 1 según str1 sea menor, igual o mayor que str2 | Comp ( String1 AS String , String2 AS String [ , Mode AS Integer ] ) AS Integer |
| Reemplaza las subcadenas &1, &2, etc. en un patrón con el primer, segundo y siguientes argumentos CadenaReemplazo, y devuelve el resultado. | Subst$ ( Patrón , CadenaReemplazo [ , CadenaReemplazo ] )
ejemplo: PRINT Subst("Gambas es un buen &1", "BASIC") genera la siguiente salida: Gambas es un buen BASIC
|
Estructuras de control
| Visual basic 6 | uso | Gambas 2 |
| if comparación then sentencia | if en una sola linea | if comparación then sentencia |
if comparación then
sentencia sentencia end if | if para una o mas sentecias | if comparación then
sentencia sentencia endif |
if comparación then
sentecia else sentencia2 end if | if con else | if comparación then
sentecia else sentencia2 endif |
if comparación then
sentecia elseif comparación2 the sentencia2 else sentencia3 end if | if con elseif y else | IF comparación [ { AND IF | OR IF } comparación2... ] THEN
...
ELSE IF comparación3 [ { AND IF | OR IF } comparación4 ... ] THEN
...
ELSE
...
ENDIF
Nota: ELSEIF no existe en gambas
|
Select Case expresión
Case valor [sentencias1] Case valor [sentencias2] Case Else sentencias n End Select | select case | Selec Case expresión
Case valor [To expresión2] [sentencias1] Case valor [To expresión3] [sentencias2] Case Else sentencias n End Select |
bucles
| Visual basic 6 | uso | Gambas 2 |
| Abandona un bucle inmediatamente. | BREAK | |
| Salta a la siguiente iteración de un bucle. | CONTINUE | |
goto etiqueta
etiqueta: | VB6 ir a etiqueta la etiqueta sola siempre termina en : | igual |
for i=0 to 100
sentencia next | VB6 repetir sentencia 100 veces | igual |
for i=0 to 100
sentencia next i | VB6 repetir sentencia 100 veces esta vez declarando explicitamente el next con la variable i | no es igual, no se puede poner la variable, siempre
next |
for i=0 to 100
sentencia1 for a=0 to 100 sentencia2 next a next i | VB6 bucle for anidado con netx declarados explicitamente | for i=0 to 100
sentencia1 for a=0 to 100 sentencia2 next next
|
for i=0 to 100 step 2
sentencia next i | VB6 opcionalmente se puede especificar el paso con step en este caso contara de 2 en 2 y sentencia se repetiria 50 veces | for i=0 to 100 step 2
sentencia next |
| Bucle infinito, hasta que se cumpla la condicion | DO [ UNTIL Expresión ] ... LOOP | |
| Bucle de enumeración. | FOR EACH ... NEXT | |
| Do ... Codigo ... Codigo Loop Until Criterio | Bucle con una comprobación de salida al final
VB6 no existe REPEAT pero este es el equivalente | REPEAT ... UNTIL
ejemplo: REPEAT PRINT Timer UNTIL Timer > 10 |
| Bucle con una comprobación de salida al inicio. | WHILE ... WEND |
control de errores
| Visual basic 6 | uso | Gambas 2 |
on error goto linea
linea: | en vb6 se coloca antes de donde se pueda producir el error
en caso de producirce el error la ejecucion del programa continua en linea: en gambas coloca Ejecuta la sentencia sin lanzar el error aunque se produzca | TRY sentencia |
| on error goto next | en vb6 se coloca antes de donde se pueda producir el error en caso de error
omite la linea y continua en la sigiente y asi sucesivamente | IF Error THEN ....
|
| err | Se puede saber si hay error consultando...
en vb6 consultando el objeto err err.description o Err.Number debe ser limpiado para conocer futuros errored con err.clear en gambas | IF Error THEN .... |
| Se coloca al final de un procedimiento, y se ejecutan las sentencias siempre (haya o no error) | FINALLY | |
| Se coloca al final de un procedimiento, y se ejecutan las sentencias solo si ha habido error | CATCH |


