Indice de contenido
-> Capítulo 8 - Funciones para variables tipo cadena
A continuación se describe el uso de las siguientes funciones predeterminadas en TEIMSI:
1)- asc
2)- ascat
3)- chr
4)- chrat
5)- hashver
6)- hextostr
7)- isinsideof
8)- ke_hashxlen
9)- lcase
10)- left
11)- len
12)- ltrim
13)- makestring
14)- replace
15)- right
16)- rtrim
17)- scrc16b
18)- setascat
19)- setchrat
20)- str_count
21)- str_repeatn
22)- str_overwrite
23)- str_reverse
24)- strpos
25)- strposrev
26)- strtohex
27)- substr
28)- substring
29)- trim
30)- ucase
31)- loadszstring
asc
La función "asc", recibe un carácter y devuelve su código ASCII, un entero entre 0 y 255 (incluidos). Es la función inversa de la función chr.
Sintaxis
Parámetros
cadena
| Variable tipo cadena de TEIMSI de longitud de 1 byte. |
Valor devuelto
numero_entero
| Variable tipo número entero de 32 bits de TEIMSI no menor que 0 ni mayor que 255. |
Ejemplo:
alert(asc("@")) // Muestra el entero 64.
Ver también <<
chr>>
Volver arriba
ascat
La función "ascat", otorga el código ASCII de un carácter de la cadena que se le envía.
Sintaxis
Parámetros
cadena
| Variable tipo cadena de TEIMSI. |
posición
| Variable tipo número entero de 32 bits de TEIMSI (no menor que 0 ni mayor o igual a la longitud de la cadena). |
Valor devuelto
número
| Variable tipo número entero de 32 bits de TEIMSI que representa el código ASCII del carácter en esa posición. |
Ejemplo:
alert(ascat("Hola", 1)) // Muestra el código ASCII de la letra "o", = 111
Ver también <<
chrat>>, <<
setchrat>>, <<
setascat>>
Volver arriba
chr
La función "chr", recibe un entero entre 0 y 255 (incluidos) y devuelve un carácter cuyo código ASCII es el número que se le envía. Es la función inversa de la función asc.
Sintaxis
Parámetros
numero_entero
| Variable tipo número entero de 32 bits de TEIMSI no menor que 0 ni mayor que 255. |
Valor devuelto
cadena
| Variable tipo cadena de TEIMSI de longitud de 1 byte. |
Ejemplo:
alert(chr(65)) // Muestra la letra "A".
Ver también <<
asc>>
Volver arriba
chrat
La función "chrat", otorga un carácter de la cadena que se le envía.
Sintaxis
Parámetros
cadena
| Variable tipo cadena de TEIMSI. |
posición
| Variable tipo número entero de 32 bits de TEIMSI (no menor que 0 ni mayor o igual a la longitud de la cadena). |
Valor devuelto
cadena
| Variable tipo cadena de TEIMSI de longitud de 1 byte. |
Ejemplo:
alert(chrat("Hola",1)) // Muestra la letra "o"
Ver también <<
ascat>>, <<
setchrat>>, <<
setascat>>
Volver arriba
hashver
La función "hashver", calcula un número "hash" (o CRC, suma de comprobación) único a partir de una cadena que se le envía como parámetro.
Sintaxis
Parámetros
cadena
| Variable tipo cadena de TEIMSI. |
Valor devuelto
número
| Variable tipo número entero de 32 bits de TEIMSI (entre -2147483648 y 2147483647 incluidos, eso es un valor entero de 4294967296 posibles) que representa un CRC de la cadena. |
Ejemplo:
alert(hashver("fuego")) // Muestra -498913163
Ver también <<
ke_hashxlen>>, <<
scrc16b>>
Volver arriba
hextostr
La función "hextostr", recibe una cadena previamente creada con la función strtohex (realiza la tarea inversa a esa función).
Sintaxis
Parámetros
cadena
| Variable tipo cadena de TEIMSI. |
Valor devuelto
cadena
| Variable tipo cadena de TEIMSI. |
Ejemplo:
var cadena1=strtohex("@$") // cadena1 vale ahora la cadena "4024"
alert(hextostr(cadena1)) // Muestra la cadena "@$".
Ver también <<
strtohex>>, <<
chr>>
Volver arriba
isinsideof
La función "isinsideof", determina si los primeros caracteres de una cadena coinciden con los de otra cadena que también se le envía.
Sintaxis
isinsideof(cadena1, cadena2, inicio) |
Parámetros
cadena1
| Variable tipo cadena de TEIMSI. |
cadena2
| Variable tipo cadena de TEIMSI, de longitud menor o igual a la de "cadena1". |
inicio
| Variable tipo número entero de 32 bits de TEIMSI (no menor que 0 ni mayor o igual a la longitud de "cadena1"), indica la posición a partir de la cual se empieza a comparar el contenido de "cadena2" dentro de "cadena1". |
Valor devuelto
booleano
| Variable tipo booleano de TEIMSI. |
La utilidad de esta función surge de su velocidad para determinar si parte de una cadena coincide con otra, porque otro código que realice ésta tarea seguramente sea mucho más lento. Su rendimiento es notable cuando se llama a la función miles de veces por segundo.
Ejemplo:
alert(isinsideof("017-Ocean - Dreams", "-Ocean ", 3))
// Determina si la cadena "-Ocean" está en la cadena "017-Ocean - Dreams" a partir de
// la posición 3 (Verdadero).
Ver también <<
strpos>>
Volver arriba
ke_hashxlen
La función "ke_hashxlen", devuelve una cadena "hash" (única y no convertible en la cadena origen por función recíproca), a partir de la cadena origen. La longitud de la cadena de salida puede especificarse y los caracteres de la misma pertenecen a todo rango del código ASCII (del 0 al 255 incluidos).
Sintaxis
ke_hashxlen(cadena, cantidad) |
Parámetros
cadena
| Variable tipo cadena de TEIMSI. |
cantidad
| Variable tipo número entero de 32 bits de TEIMSI (no menor que 0). |
Valor devuelto
cadena
| Variable tipo cadena de TEIMSI. |
La utilidad de esta función reside en su capacidad de devolver una cadena "binaria" de longitud arbitraria, al tiempo que proporciona un método "fuerte" de cálculo de la cadena de salida (y tiene considerable lentitud).
Ejemplo:
// Muestra una cadena "hash" (similar a la que genera la función "md5hash", más información: buscar "rfc1321" en Internet).
alert(strtohex(ke_hashxlen("Programando con TEIMSI", 16)))
Ver también <<
hashver>>
Volver arriba
lcase
La función "lcase", convierte los caracteres de una cadena en minúscula.
Sintaxis
Parámetros
cadena
| Variable tipo cadena de TEIMSI. |
Valor devuelto
cadena
| Variable tipo cadena de TEIMSI, es la cadena pasada a minúscula de que se le envió. |
Ejemplo:
alert(lcase("PROGRAMA")) // Muestra "programa"
Ver también <<
ucase>>
Volver arriba
left
La función "left", devuelve una cadena que constituye la parte izquierda de otra cadena.
Sintaxis
Parámetros
cadena
| Variable tipo cadena de TEIMSI. |
cantidad
| Variable tipo número entero de 32 bits de TEIMSI (no menor que 0). Longitud de la cadena de salida. |
Valor devuelto
cadena
| Variable tipo cadena de TEIMSI. |
Ejemplo:
alert(left("UltraRayo", 5)) // Muestra la cadena "Ultra".
Ver también <<
right>>
Volver arriba
len
La función "len", devuelve un entero con la longitud de una variable tipo cadena de TEIMSI.
Sintaxis
Parámetros
cadena
| Variable tipo cadena de TEIMSI. |
Valor devuelto
número_entero
| Variable tipo número entero de 32 bits de TEIMSI (no menor que 0) con la longitud de la cadena. |
Ejemplo:
alert(len("numero")) // Muestra "6"
Ver también <<
count>>
Volver arriba
ltrim
La función "ltrim", quita los espacios y tabuladores de la parte izquierda de una cadena devolviendo la cadena resultante.
Sintaxis
Parámetros
cadena
| Variable tipo cadena de TEIMSI. |
Valor devuelto
cadena
| Variable tipo cadena de TEIMSI. |
Ejemplo:
alert("Este es un " + ltrim(" texto")) // Muestra "Este es un texto"
Ver también <<
rtrim>>, <<
trim>>
Volver arriba
makestring
La función "makestring", crea una cadena de la longitud deseada que contiene todos sus caracteres de valor igual a chr(0).
Sintaxis
makestring(número_entero) |
Parámetros
número_entero
| Variable tipo número entero de 32 bits de TEIMSI (no menor que 0) con la longitud de la cadena. |
Valor devuelto
cadena
| Variable tipo cadena de TEIMSI. |
Ejemplo:
alert(len(makestring(29))) // Muestra "29"
Ver también <<
str_repeatn>>
Volver arriba
replace
La función "replace", reemplaza en una cadena cierta coincidencia por otra cadena.
Sintaxis
replace(cadena, buscar, reemplazar) |
Parámetros
cadena
| Variable tipo cadena de TEIMSI. |
buscar
| Variable tipo cadena de TEIMSI. |
reemplazar
| Variable tipo cadena de TEIMSI. |
Valor devuelto
cadena
| Variable tipo cadena de TEIMSI. |
Ejemplo:
alert(replace("ola", "o", "Ho"))
Ver también <<
strpos>>
Volver arriba
right
La función "right", devuelve una cadena que constituye la parte derecha de otra cadena.
Sintaxis
Parámetros
cadena
| Variable tipo cadena de TEIMSI. |
cantidad
| Variable tipo número entero de 32 bits de TEIMSI (no menor que 0). Longitud de la cadena de salida. |
Valor devuelto
cadena
| Variable tipo cadena de TEIMSI. |
Ejemplo:
alert(right("UltraRayo", 4)) // Muestra la cadena "Rayo".
Ver también <<
left>>
Volver arriba
rtrim
La función "rtrim", quita los espacios y tabuladores de la parte derecha de una cadena devolviendo la cadena resultante.
Sintaxis
Parámetros
cadena
| Variable tipo cadena de TEIMSI. |
Valor devuelto
cadena
| Variable tipo cadena de TEIMSI. |
Ejemplo:
alert("Este es un " + rtrim("texto ") + " pequeño") // Muestra "Este es un texto pequeño"
Ver también <<
ltrim>>, <<
trim>>
Volver arriba
scrc16b
La función "scrc16b", crea una cadena única (CRC) a partir de otra. La longitud de la cadena es de cuatro caracteres hexadecimales (números y letras A,B,C,D,E,F)
Sintaxis
Parámetros
cadena
| Variable tipo cadena de TEIMSI. |
Valor devuelto
cadena
| Variable tipo cadena de TEIMSI. |
La función en código P.h.p es el siguiente :
function s16b_crc($encs){
$rslt = 799477;
for($i=0;$i<strlen($encs);$i++){
$rslt = $rslt ^ (ord($encs[$i])*175 + (($i*3+171)^7977) ) ;
}
$rslt=$rslt-65536*floor($rslt/65536);
$rslt1=floor($rslt/256);
$rslt2=$rslt-256*$rslt1;
$s1="00".dechex($rslt1);
$s2="00".dechex($rslt2);
return( substr($s1, len($s1)-2, 2) . substr($s2, len($s2)-2, 2) );
}
Ejemplo:
alert(scrc16b("hola")) // Muestra "3787"
Ver también <<
hashver>>
Volver arriba
setascat
La función "setascat", escribe sobre una cadena un cáracter en la cadena especificada, cuya posición de escritura y código ASCII del carácter se especifica. La lectura de dicho valor se realiza con la función ascat.
Sintaxis
setascat(cadena, posición, número) |
Parámetros
cadena
| Variable tipo cadena de TEIMSI. |
posición
| Variable tipo número entero de 32 bits de TEIMSI (no menor que 0 ni mayor o igual a la longitud de la cadena). |
número
| Variable tipo número entero de 32 bits de TEIMSI que representa el código ASCII del carácter a escribir. |
Ejemplo:
var cad1="Océani"
setascat(cad1, 5, 111)
alert(cad1) // Muestra la cadena "Océano".
alert(setascat("Océuno", 3, 97)) // Muestra la cadena "Océano".
Ver también <<
ascat>>, <<
chrat>>, <<
setchrat>>
Volver arriba
setchrat
La función "setchrat", devuelve una cadena que surge de escribir un carácter en una cadena de entrada en una posición de escritura especificada. La lectura de dicho carácter se realiza con la función chrat.
Sintaxis
setchrat(cadena, posición, carácter) |
Parámetros
cadena
| Variable tipo cadena de TEIMSI. |
posición
| Variable tipo número entero de 32 bits de TEIMSI (no menor que 0 ni mayor o igual a la longitud de la cadena). |
carácter
| Variable tipo cadena de TEIMSI de longitud de 1 byte. |
Ejemplo:
var cad1="Océani"
setchrat(cad1, 5, "o")
alert(cad1) // Muestra la cadena "Océano".
alert(setchrat("Océani", 5, "o")) // Muestra la cadena "Océano".
Ver también <<
ascat>>, <<
chrat>>, <<
setascat>>
Volver arriba
str_count
La función "str_count", recibe dos variables tipo cadena de TEIMSI y determina la cantidad de veces que la segunda cadena se encuentra dentro de la primera (exceptuando interposiciones).
Sintaxis
str_count(cadena1, buscar) |
Parámetros
cadena1
| Variable tipo cadena de TEIMSI. |
buscar
| Variable tipo cadena de TEIMSI, para la cual se quiere contar la cantidad de apariciones en "cadena1". |
Valor devuelto
numero_entero
| Variable tipo número entero de 32 bits de TEIMSI. |
Ejemplo:
alert(str_count("1111222211112222", "11")) // Muestra el número 4.
Ver también <<
explode>>, <<
implode>>
Volver arriba
str_repeatn
La función "str_repeatn", crea una cadena repitiendo otra de entrada cuya cantidad de repeticiones se indica con un entero como el primer parámetro.
Sintaxis
str_repeatn(cadena1, número) |
Parámetros
cadena1
| Variable tipo cadena de TEIMSI. |
número
| Variable tipo número entero de 32 bits de TEIMSI que representa la cantidad de veces que se repetirá la cadena. |
Valor devuelto
cadena_salida
| Variable tipo cadena de TEIMSI. |
Ejemplo:
alert(str_repeatn("*", 12)) // Muestra la cadena "************"
Ver también <<
str_count>>, <<
makestring>>
Volver arriba
str_overwrite
La función "str_overwrite", sobrescribe una parte de una varible tipo cadena. Recibe como el primer parámetro una variable pública o, local a una función TEIMSI y una segunda variable tipo cadena cuyos caracteres (bytes) se escribirán en la primera. El tercer parámetro es un entero largo (con signo) con el desplazamiento en la primer cadena a partir de donde se iniciará la escritura. Admite cadenas de hasta 2147483647 (es decir 2**31 - 1) bytes.
Sintaxis
str_overwrite(cadena1, cadena2, entero_largo) |
Parámetros
cadena1
| Variable de TEIMSI pública o local a una función de TEIMSI. Debe tener modo dinámico, eso significa que debe ser el nombre de una variable y no el resultado de una expresión. |
cadena2
| Variable de TEIMSI que tiene el requisito de ser tipo cadena. |
entero_largo
| Variable tipo número entero con signo de 32 bits de TEIMSI que representa el desplazamiento donde empezar la escritura en "cadena1". |
Valor devuelto
booleano
| Variable tipo booleano: verdadero o falso (true or false). |
Ejemplo:
var cadena1="onda de propagación"
str_overwrite(cadena1, "en interacción", 5)
alert(cadena1)
//Ejemplo 2
// El propósito de la función es acelerar el proceso de cambiar parte de una cadena en lenguaje TEIMSI, de otra manera sería una tarea lenta. Como en el siguiente ejemplo cuya meta es el cambio de la palabra "-centro-" por la "-cadena-" en una variable cadena conocida.
var cadena1="izquierda-centro-derecha"
var buscar = "-centro-"
var cambiar = "-cadena-"
var p=strpos(cadena1, buscar, 0)
// Opción 1 (lenta)
cadena1=substr(cadena1, 0, p) + cambiar + substr(cadena1, p+len(buscar), -1)
// Opción 2 (rápida)
str_overwrite(cadena1, cambiar, p)
Ver también <<
substr>>, <<
strpos>>
Volver arriba
str_reverse
La función "str_reverse", crea una cadena en la que se ha invertido la posición de los caracteres de una cadena de entrada (haciendo que los primeros caracteres aparezcan a lo último y los últimos aparezcan como primeros).
Sintaxis
Parámetros
cadena
| Variable tipo cadena de TEIMSI. |
Valor devuelto
cadena
| Variable tipo cadena de TEIMSI. |
Ejemplo:
alert(str_reverse("sohcum")) // Muestra la cadena "muchos"
Ver también <<
str_repeatn>>
Volver arriba
strpos
La función "strpos", busca una cadena dentro de otra apartir de la posición especificada.
Sintaxis
strpos(cadena1, buscar, número) |
Parámetros
cadena1
| Variable tipo cadena de TEIMSI. Es la cadena que tiene la cadena buscada. |
buscar
| Variable tipo cadena de TEIMSI. Es la cadena que se buscará. |
número
| Variable tipo número entero de 32 bits de TEIMSI que representa el inicio dentro de "cadena1" donde se iniciará la búsqueda. |
Valor devuelto
número
| Variable tipo número entero de 32 bits de TEIMSI que indica la posición donde se encuentra la cadena "buscar" dentro de "cadena1", o -1 si no se encontró. |
Ejemplo:
alert(strpos("hola mundo", "ola", 0)) // Muestra "1"
alert(strpos("hola mundo", "ola", 2)) // Muestra "-1"
Ver también <<
strposrev>>
Volver arriba
strposrev
La función "strposrev", busca una cadena dentro de otra apartir de la posición especificada desde el final hacia el inicio.
Sintaxis
strposrev(cadena1, buscar, número) |
Parámetros
cadena1
| Variable tipo cadena de TEIMSI. Es la cadena que tiene la cadena buscada. |
buscar
| Variable tipo cadena de TEIMSI. Es la cadena que se buscará. |
número
| Variable tipo número entero de 32 bits de TEIMSI que representa el inicio dentro de "cadena1" donde se iniciará la búsqueda, puede ser un entero mayor o igual a la longitud de "cadena1": si vale -1 se toma como la longitud de dicha cadena. |
Valor devuelto
número
| Variable tipo número entero de 32 bits de TEIMSI que indica la posición donde se encuentra la cadena "buscar" dentro de "cadena1", o -1 si no se encontró. |
Ejemplo:
alert(strposrev("hola ola.", "ola", 1000000)) // Muestra "5"
alert(strposrev("hola ola.", "ola", 3)) // Muestra "1"
Ver también <<
strpos>>
Volver arriba
strtohex
La función "strtohex", convierte una cadena en otra cuyos códigos ASCII de la primera están pegados, notación hexadecimal y con longitud de 2 bytes.
Sintaxis
Parámetros
cadena
| Variable tipo cadena de TEIMSI. |
Valor devuelto
cadena
| Variable tipo cadena de TEIMSI. |
Ejemplo:
alert(strtohex("@$")) // Muestra la cadena "4024", observar que el código ASCII de "@" es 64 (40 en hexadecimal) y el de "$" es 36 (24 en hexadecimal).
Ver también <<
hextostr>>, <<
chr>>
Volver arriba
substr
La función "substr", substrae parte de una cadena. Es similar a la función substring pero se distingue en el tercer parámetro.
Sintaxis
substr(cadena, inicio, longitud) |
Parámetros
cadena
| Variable tipo cadena de TEIMSI. |
inicio
| Variable tipo número entero de 32 bits de TEIMSI (no menor que 0). Indica la posición donde inicia la sub-cadena que se quiere copiar. |
longitud
| Variable tipo número entero de 32 bits de TEIMSI (no menor que 0). Indica la longitud de la sub-cadena que se quiere copiar. Si este valor vale -1, entonces se tomará la parte derecha de la cadena desde la posición del valor del segundo parámetro (número "inicio"). |
Valor devuelto
cadena
| Variable tipo cadena de TEIMSI. |
Ejemplo:
alert(substr("universo", 3, 5)) // muestra la cadena "verso"
Ver también <<
substring>>, <<
left>>, <<
right>>
Volver arriba
substring
La función "substring", substrae parte de una cadena. Es similar a la función substr pero se distingue en el tercer parámetro.
Sintaxis
substring(cadena, inicio, final) |
Parámetros
cadena
| Variable tipo cadena de TEIMSI. |
inicio
| Variable tipo número entero de 32 bits de TEIMSI (no menor que 0). Indica la posición donde inicia la sub-cadena que se quiere copiar. |
final
| Variable tipo número entero de 32 bits de TEIMSI (no menor que 0). Indica la posición donde finaliza la sub-cadena que se quiere copiar. |
Valor devuelto
cadena
| Variable tipo cadena de TEIMSI. |
Ejemplo:
alert(substring("universo2", 3, 8)) // muestra la cadena "verso"
Ver también <<
substr>>, <<
left>>, <<
right>>
Volver arriba
trim
La función "trim", quita los espacios y tabuladores de los costados de una cadena devolviendo la cadena resultante.
Sintaxis
Parámetros
cadena
| Variable tipo cadena de TEIMSI. |
Valor devuelto
cadena
| Variable tipo cadena de TEIMSI. |
Ejemplo:
alert("El electrón es " + trim(" un ") + " leptón") // Muestra "El electrón es leptón"
Ver también <<
ltrim>>, <<
rtrim>>
Volver arriba
ucase
La función "ucase", convierte los caracteres de una cadena en mayúscula.
Sintaxis
Parámetros
cadena
| Variable tipo cadena de TEIMSI. |
Valor devuelto
cadena
| Variable tipo cadena de TEIMSI, es la cadena pasada a mayúscula de la que se le envió. |
Ejemplo:
alert(ucase("programa")) // Muestra "PROGRAMA"
Ver también <<
lcase>>
Volver arriba
loadszstring
La función "loadszstring" carga una cadena definida en la sección de datos del ensamblador, la cadena debe terminar con el carácter chr(0).
Sintaxis
Parámetros
entero
| Variable tipo entero largo. Debe tener como valor el puntero a la dirección en la sección de datos, hacia una cadena. |
Valor devuelto
cadena
| Variable tipo cadena de TEIMSI. Devuelve la cadena definida en la sección de datos excluyendo el carácter chr(0) que la finaliza. |
Ejemplo:
place_idata{
descripcion db "El espacio no está vacío.",0
}
var entero=0;
_direct{
mov [entero+reg.vo], (descripcion)
}
alert(_c34+loadszstring(entero)+_c34); // Muestra la cadena: "El espacio no está vacío."
Ver también <<
makestring>>
Volver arriba