TEIMSI
Plataforma del desarrollador de textos programados
Inicio|Utilidades|Foro|Documentación

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
alert(cadena)
 

Parámetros
cadena
Variable tipo cadena de TEIMSI.
 

Valor devuelto
(ninguno)
 

Ejemplo:



	alert("Hola")


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

Parámetros
(ninguno)
 

Valor devuelto
cadena
Variable tipo cadena de TEIMSI.
 

Ejemplo:



	alert(cmdline())


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

Parámetros
(ninguno)
 

Valor devuelto
numero_entero
Variable tipo número entero de 32 bits de TEIMSI con el número de error.
 

Ejemplo:


	(Ver ejemplo de la función "err_description".)



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
imode(variable)
 

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
itype(variable)
 

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
number_type(cadena)
 

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
timelong(booleano)
 

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
arr2timelong(matriz)
 

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