Indice de contenido
-> Capítulo 13 - Funciones para obtener y presentar información
A continuación se describe el uso de las siguientes funciones predeterminadas en TEIMSI:
1)- alert(cadena)
2)- alert_ex(cadena,titulo,banderas)
3)- cmdline()
4)- err_description(número)
5)- err_number()
6)- ibsize(variable)
7)- imode(variable)
8)- inputdlg(titulo,texto,cadena_predeterminada)
9)- inputdlgx(titulo,texto,cadena_predeterminada)
10)- iofix(variable)
11)- ipointer(variable)
12)- itype(variable)
13)- number_type(número_en_texto)
14)- timelong(booleano)
15)- opfopen(senda,texto,extensiones)
16)- opfsave(senda,texto,extensiones)
17)- timelong2arr(entero)
18)- arr2timelong(matriz)
alert
La función "alert", muestra un mensaje en un dialogo sencillo con un botón de aceptar. (Equivale a la función MessageBox de la librería user32.dll).
Sintaxis
Parámetros
cadena
| Variable tipo cadena de TEIMSI. |
Valor devuelto
Ejemplo:
Ver también <<
alert_ex>>
Volver arriba
alert_ex
La función "alert_ex" muestra un mensaje, título, icono y botones personalizados. (Equivale a la función MessageBox de la librería user32.dll).
Sintaxis
alert_ex(mensaje,titulo,banderas) |
Parámetros
mensaje
| Variable tipo cadena de TEIMSI. |
titulo
| Variable tipo cadena de TEIMSI. |
banderas
| Variable tipo número entero de 32 bits de TEIMSI. Las siguientes variables predefinidas pueden usarse para formar este número (con sumas sucesivas): |
_mb_okcancel
_mb_abortretryignore
_mb_yesnocancel
_mb_yesno
_mb_retrycancel
_mb_iconerror
_mb_iconquestion
_mb_iconexclamation
_mb_iconinformation
_mb_iconasterisk
_mb_defbutton2
_mb_defbutton3
Valor devuelto
entero
| Variable tipo número entero de 32 bits de TEIMSI. Las siguientes variables predefinidas pueden tener su valor: |
_mbret_yes
_mbret_no
_mbret_cancel
_mbret_yesno
_mbret_abort
_mbret_retry
_mbret_ignore
Ejemplo:
var rs=alert_ex("Elegir una opción:","Ejemplo de alert_ex:",_mb_iconquestion+_mb_yesnocancel)
var rsarr=array()
rsarr[_mbret_cancel]="Cancelar"
rsarr[_mbret_yes]="Si"
rsarr[_mbret_no]="No"
alert("Se eligió : " + rsarr[rs])
Ver también <<
alert>>
Volver arriba
cmdline
La función "cmdline", devuelve la línea de comandos que se pasó al programa al iniciarse. La cadena que brinda puede tener distintas formas de representación, en general se trata de la senda al programa entre comillas seguida de un espacio y la línea de comandos adicionales.
Sintaxis
Parámetros
Valor devuelto
cadena
| Variable tipo cadena de TEIMSI. |
Ejemplo:
Ver también <<
alert>>
Volver arriba
err_description
La función "err_description", recibe un número de error de los devueltos por las API's principales de Win2000/XP/7/... (kernel32, user32, Etc.) y devuelve la descripción del error.
Sintaxis
err_description(numero_entero) |
Parámetros
numero_entero
| Variable tipo número entero de 32 bits de TEIMSI con el número de error. |
Valor devuelto
cadena
| Variable tipo cadena de TEIMSI. |
Ejemplo:
deletefile("archivoejemplo.archivoejemplo")
alert(err_description(err_number())) // Muestra el error "El sistema no puede hallar el archivo especificado."
_direct{
invoke SetLastError, 28 ; Establece el error de que no hay papel en la impresora.
}
alert(err_description(err_number()))
// (Nota: El archivo "win_errores.txt" en la carpeta "tools" junto con el Editor TEIMSI, contiene una lista de errores de sistemas Win2000/XP/7/....)
Ver también <<
err_number>>
Volver arriba
err_number
La función "err_number", devuelve el último error generado por alguna función de API's principales de Win2000/XP/7/... (librerías kernel32, user32, Etc.).
Sintaxis
Parámetros
Valor devuelto
numero_entero
| Variable tipo número entero de 32 bits de TEIMSI con el número de error. |
Ejemplo:
Ver también <<
err_description>>
Volver arriba
ibsize
La función "ibsize", devuelve la longitud del bloque interno de los datos contenidos en una matriz o cadena. Si se trata de una cadena el tamaño de dicho bloque es en general algo mayor que el tamaño de la cadena.
Sintaxis
ibsize(cadena) |
ibsize(matriz) |
Parámetros
variable
| Variable tipo cadena o matriz de TEIMSI. |
Valor devuelto
numero_entero
| Variable tipo número entero de 32 bits de TEIMSI. |
Ver también <<
imode>>
Volver arriba
imode
La función "imode", devuelve un entero que dice la modalidad de una variable. Por más información ver el Capítulo "Variables de TEIMSI".
Sintaxis
Parámetros
variable
| Variable declarada de TEIMSI. |
Valor devuelto
numero_entero
| Variable tipo número entero de 32 bits de TEIMSI. La modalidad es una propiedad de las variables y está presente en la estructura "regvar" de toda variable de TEIMSI. Las siguientes variables predefinidas pueden usarse para evaluar este resultado. |
(Constante) (Modalidad de variable)
_mod_stat Estática.
_mod_dina Dinámica (para variables declaradas con "var").
_mod_engi Temporal (para variables no declaradas).
Ejemplo:
var cantidad=3
alert("La variable cantidad se declaró con var = "+ (imode(cantidad)==_mod_dina));
alert("La variable estática se declaró con var = "+ (imode("texto")==_mod_dina));
Ver también <<
itype>>
Volver arriba
inputdlg
La función "inputdlg", muestra un cuadro de diálogo con un título, mensaje, un cuadro de texto y los botones aceptar y cancelar. Permite ingresar un texto al usuario.
Sintaxis
inputdlg(titulo,texto,cadena_predeterminada) |
Parámetros
titulo
| Variable tipo cadena de TEIMSI. Título del cuadro de diálogo. |
texto
| Variable tipo cadena de TEIMSI. Texto de descripción para el cuadro de diálogo. |
cadena_predeterminada
| Variable tipo cadena de TEIMSI. Es el texto que aparece en el cuadro de texto en forma predeterminada. |
Valor devuelto
cadena/booleano
| Variable tipo cadena de TEIMSI. |
Nota: Para poder utilizar esta función es necesario incluir en la sección de datos de recursos la estructura interna del cuadro de dialogo, lo cual se puede hacer incluyendo el archivo "simple_rsrc.asm" con la instrucción "includec(engine\internal\simple_rsrc.asm)" (ver ejemplo). |
Ejemplo:
// El siguiente programa permite ingresar un número y de devuelve el inverso del mismo.
includec(engine\internal\simple_rsrc.asm)
var sint="10.7"
while(true){
var sint=inputdlg("Ingresa un número cualquiera:", "<Cálculo del Inverso>", sint)
if(sint===false){break}
alert_ex("El inverso de " + sint + ", es : " + (1/parsefloat(sint)), "Information", _mb_iconinformation)
}
Ver también <<
parsefloat>>
Volver arriba
inputdlgx
La función "inputdlgx", se comporta como la función "inputdlg" pero oculta los caracteres en el cuadro de texto. (Muestra un cuadro de diálogo con un título, mensaje, un cuadro de texto y los botones aceptar y cancelar; permitiendo al usuario ingresar un texto.)
Sintaxis
inputdlgx(titulo,texto,cadena_predeterminada) |
Parámetros
titulo
| Variable tipo cadena de TEIMSI. Título del cuadro de diálogo. |
texto
| Variable tipo cadena de TEIMSI. Texto de descripción para el cuadro de diálogo. |
cadena_predeterminada
| Variable tipo cadena de TEIMSI. Es el texto que aparece en el cuadro de texto en forma predeterminada. |
Valor devuelto
cadena/booleano
| Variable tipo cadena de TEIMSI. |
Nota: Para poder utilizar esta función es necesario incluir en la sección de datos de recursos la estructura interna del cuadro de dialogo, lo cual se puede hacer incluyendo el archivo "simple_rsrc.asm" con la instrucción "includec(engine\internal\simple_rsrc.asm)" (ver ejemplo) |
Ejemplo:
includec(engine\internal\simple_rsrc.asm)
var clave=inputdlgx("<Dato>","Ingresa la clave:", "claveclaveclaveclave")
alert("La clave ingresada es : " +clave)
Ver también <<
inputdlg>>
Volver arriba
iofix
La función "iofix", devuelve un entero con el manejador interno de la cadena o matriz que se le pasa como variable.
Sintaxis
iofix(cadena) |
iofix(matriz) |
Parámetros
variable
| Variable tipo cadena o matriz de TEIMSI. |
Valor devuelto
numero_entero
| Variable tipo número entero de 32 bits de TEIMSI. |
Ejemplo:
// El siguiente ejemplo muestra dos formas de acceder al manejador de una cadena o matriz.
var cadena=ucase("hola!")+chr(0) // Crea una variable tipo cadena.
var manejador1=0 // Crea una variable tipo entero largo.
_direct{
mov eax, [cadena+reg.vo] ; Carga el manejador.
mov [manejador1+reg.vo], eax ; Guarda el valor en el valor del entero "manejador1".
}
var manejador2=iofix(cadena) // "iofix" realiza la misma tarea pero por otro camino.
alert("Los manejadores son iguales = " + (manejador1==manejador2))
// Muestra la cadena mediante "MessageBox"
_direct{
mov eax, [manejador2+reg.vo]
NWPOS_eax
invoke MessageBox, 0, esi, (tsi_msgxtitile), 0
}
Ver también <<
imode>>, <<
itype>>
Volver arriba
ipointer
La función "ipointer", devuelve una variable tipo entero de TEIMSI con la dirección en memoria (accedida por el microprocesador) que apunta a la variable tipo cadena o matriz que se le pasa como parámetro.
Sintaxis
ipointer(cadena) |
ipointer(matriz) |
Parámetros
cadena/matriz
| Variable tipo cadena o matriz de TEIMSI. |
Valor devuelto
numero_entero
| Variable tipo número entero de 32 bits de TEIMSI. |
Ver también <<
iofix>>
Volver arriba
itype
La función "itype", devuelve un entero que indica el tipo de datos que tiene una variable.
Sintaxis
Parámetros
variable
| Variable declarada de TEIMSI. |
Valor devuelto
numero_entero
| Variable tipo número entero de 32 bits de TEIMSI. Las siguientes variables predefinidas pueden usarse para evaluar este resultado. |
_sysbool Booleano
_syslong Entero de 32 bits
_sysdbl Número de coma flotante de precisión doble (de 8 bytes)
_sysstr Cadena
_sysarr Matriz
_sysundef "Undefined"
_sysnull "Null"
Ejemplo:
var numero=19.2
alert("¿es \"numero\" es una variable de coma flotante ? : " + (itype(numero)==_sysdbl))
Ver también <<
imode>>
Volver arriba
number_type
La función "number_type", describe el tipo de número que tiene una expresión de cadena.
Sintaxis
Parámetros
cadena
| Variable tipo cadena de TEIMSI. |
Valor devuelto
numero_entero
| Variable tipo número entero de 32 bits de TEIMSI. Este resultado indica 0 si no es un número, 1 si es un entero y 2 si es un número de coma flotante. Las siguientes variables predefinidas: _numtype_long, _numtype_dbl, _numtype_none; tienen los valores de 1, 2 y 0 respectivamente y pueden usarse para evaluar este resultado. |
Ejemplo:
alert("82.3 es número decimal? =" + (number_type("82.3")==2))
Ver también <<
parsefloat>>
Volver arriba
timelong
La función "timelong", devuelve la hora actual en un entero de 32 bits con los segundos transcurridos desde el 1/1/1970. La información es comparable con el conocido "Tiempo de Linux". El parámetro que se le pasa es un booleano (o entero de valor 1 o valor 0) que indica "true" si se quiere obtener la hora en UTC 0 (Hora según el meridiano de Greenwich), de lo contrario se devuelve la hora en la zona horaria del sistema operativo.
Sintaxis
Parámetros
booleano
| Variable tipo número entero de 32 bits de TEIMSI. Indica "true" (verdadero) si se quiere la hora actual en el meridiano de Greenwich. |
Valor devuelto
numero_entero
| Variable tipo número entero de 32 bits de TEIMSI. |
Ver también <<
timelong2arr>>
Volver arriba
opfopen
La función "opfopen", abre un cuadro de diálogo para ingresar el nombre de un archivo que se quiere leer.
Sintaxis
opfopen(senda,texto,extensiones) |
Parámetros
senda
| Variable tipo cadena de TEIMSI. Indica la senda predeterminada al elegir un archivo. |
texto
| Variable tipo cadena de TEIMSI. Indica el título de cuadro de diálogo, si se especifíca "" (cadena nula) se toma el título predeterminado. |
extensiones
| Variable tipo cadena de TEIMSI. Indica el texto a mostrar al usuario en las extensiones permitidas, seguido de un carácter chr(0) y las extensiones permitidas de la forma *.extensiones (por ejemplo "*.*" indica todas las extensiones de archivo). |
Valor devuelto
cadena
| Variable tipo cadena de TEIMSI. Se devuelve la cadena nula ("") en caso de que no se halla elegido un archivo. |
Ejemplo:
var r = opfopen(".","","todo archivo *.*"+chr(0)+"*.*");
alert("Se eligió: " + r)
Ver también <<
opfsave>>
Volver arriba
opfsave
La función "opfsave", abre un cuadro de diálogo para ingresar el nombre de un archivo que se quiere escribir o guardar.
Sintaxis
opfsave(senda,texto,extensiones) |
Parámetros
senda
| Variable tipo cadena de TEIMSI. Indica la senda predeterminada al elegir un archivo. |
texto
| Variable tipo cadena de TEIMSI. Indica el título de cuadro de diálogo, si se especifíca "" (cadena nula) se toma el título predeterminado. |
extensiones
| Variable tipo cadena de TEIMSI. Indica el texto a mostrar al usuario en las extensiones permitidas, seguido de un carácter chr(0) y las extensiones permitidas de la forma *.extensiones (por ejemplo "*.*" indica todas las extensiones de archivo). |
Valor devuelto
cadena
| Variable tipo cadena de TEIMSI. Se devuelve la cadena nula ("") en caso de que no se halla elegido un archivo. |
Ejemplo:
var r = opfsave(".","","todo archivo *.*\0*.*");
alert("Se eligió: " + r)
Ver también <<
opfopen>>
Volver arriba
timelong2arr
La función "timelong2arr", recibe un entero con los segundos desde 1/1/1970 (ver "timelong") y devuelve una matriz con enteros que describen la fecha precisamente.
Sintaxis
timelong2arr(numero_entero) |
Parámetros
numero_entero
| Variable tipo número entero de 32 bits de TEIMSI. Tiene que ser un número con el formato e información de los enteros devueltos por la función "timelong". |
Valor devuelto
matriz
| Variable tipo matriz de TEIMSI. La siguiente tabla muestra variables predefinidas que pueden usarse para evaluar los datos en dicha matriz. |
_tlyear Año de la fecha.
_tlmonth Mes de la fecha.
_tldayofweek Día de la semana (0=domingo, 1=lunes, ...) de la fecha.
_tlday Día del mes de la fecha.
_tlhour Hora de la fecha.
_tlminute Minuto de la fecha.
_tlsecond Segundo de la fecha.
Ejemplo:
var arrdate=timelong2arr(timelong(false))
alert("La hora actual = "+arrdate[_tlhour])
Ver también <<
arr2timelong>>
Volver arriba
arr2timelong
La función "arr2timelong", recibe una matriz con el mismo formato devuelto por la función "timelong2arr" y devuelve un entero con los segundos desde 1/1/1970. El ítem de índice _tldayofweek (índice 2) se ignora.
Sintaxis
Parámetros
matriz
| Variable tipo matriz de TEIMSI. (ver la tabla que muestra variables predefinidas para evaluar los datos de la misma en la ayuda de la función "timelong2arr".) |
Valor devuelto
numero_entero
| Variable tipo número entero de 32 bits de TEIMSI con los segundos desde 1/1/1970. |
Ejemplo:
var arrdate=array(1997,4,0,17,23,15,0)
alert("Segundos transcurridos desde 1 de enero de 1970 a las 00:00',0\", hasta el 17 de abril de 1997 a las 17:23',15\" = " + arr2timelong(arrdate))
Ver también <<
timelong2arr>>
Volver arriba