Category:Amazing Hopper: Difference between revisions

m
Line 1,464:
Si en la instrucción de alto nivel existe un "*", significa que el orden de los argumentos es afectado por POSTFIX.
 
HOPPER DESCRIPCION ALTO NIVEL
-----------------------------------------------------------------------------------
{A}len Obtiene el tamaño de la cadena A len(A)
 
{A}asc Obtiene el valor ASCII de A asc(A)
 
{A}chr Obtiene el caracter del valor ASCII chr(A)
A.
identificado por A.
{B,C}countat Cuenta el número de ocurrencias de countat(B,C)
B en C.
C puede ser un array.
{A,B,C}countat Cuenta el número de ocurrencias de countat(A,B,C)
B en C, omitiendo A caracteres.
C puede ser un array.
{B,C}findat Obtiene la posición de la última findat(B,C)
ocurrencia de B en C.
{A,B,C}findat Obtiene la posición de la A findat(A,B,C)
ocurrencia de B en C.
C puede ser un array.
{BA,CB}countatfind Cuenta el número deObtiene ocurrenciasla posición de la primera countat find(BA,CB)
B ocurrencia de A en CB.
C puede ser un array.
multipasson Activa el multipaso en la búsqueda multipasson
con FINDAT y COUNTAT.
multipassoff Desactiva multipaso. multipassoff
{A}trim Quita espacios laterales de A trim(A)
{A}trimright Quita espacios a la derecha de A trimright(A)
{A}trimleft Quita espacios a la izquierda de A trimleft(A)
{A,B,C}padcenter Centra la cadena C entre un espacio padcenter(A,B,C)
de B caracteres, rellenando con el
caracter A.
A y B pueden ser arrays, pero el largo
de B debe ser el número de columnas
de C.
{A,B,C}padright Ajusta la cadena C entre un espacio padright(A,B,C)
de B caracteres, rellenando con el
caracter A, hacia la derecha.
A y B pueden ser arrays, pero el largo
de B debe ser el número de columnas
de C.
{A,B,C}padleft Ajusta la cadena C entre un espacio padleft(A,B,C)
de B caracteres, rellenando con el
caracter A, hacia la izquierda.
A y B pueden ser arrays, pero el largo
de B debe ser el número de columnas
de C.
{A,B}replicate
{A}replyby(B) Replica la cadena A, B veces. replicate(A,B)
A puede ser un array.
{A,B}cat Concatena A y B. cat(A,B)
{A,B}cut Corta la cadena B desde la primera cut(A,B)
ocurrencia del caracter A, desde la
izquierda hacia la derecha.
A y B pueden ser arrays.
{A,B}rcut Corta la cadena B desde la última rcut(A,B)
ocurrencia del caracter A, desde la
derecha hacia la izquierda.
A y B pueden ser arrays.
{A,B,C},copy Obtiene una subcadena de C, de copy(A,B,C)
tamaño A, contando desde B.
C y B pueden ser arrays.
 
{AC,BD,CE}countattransform Cambia todas Cuentalas el númeroinstancias de ocurrenciasC de countat transform(AC,BD,CE)
B en CE, omitiendo Acon caracteresD.
C, puedeD sery unE pueden ser arrayarrays.
 
{B,C,D,E}findattransform Cambia todas las Obtiene la posicióninstancias de laC última findattransform(B,C,D,E)
ocurrencia de B en C.E, con D, contando desde la
ocurrencia B.
C, D y E pueden ser arrays.
 
{A,B,C,D,E}findattransform Cambia todas las Obtiene la posicióninstancias de laC A findattransform(A,B,C,D,E)
ocurrencia de B en C.E, con D, contando desde la
C puede serocurrencia unB, arrayhasta la ocurrencia A.
C, D y E pueden ser arrays.
 
{A,B,C,D}findreplace Reemplaza A caracteres Obtienedesde la posición de la primera findreplace(A,B,C,D)
ocurrencia posición B, de AD, enpor BC.
C D puede ser un array.
 
multipasson {A,B,C}insert ActivaInserta ella multipasocadena B en laC, búsquedadesde la multipassoninsert(A,B,C)
FINDAT y COUNTATposición A.
C y B pueden ser arrays.
 
multipassoff {A,B,C}delete Desactiva multipaso.Borra A caracteres de C, desde la multipassoffdelete(A,B,C)
posición B.
C y B pueden ser arrays.
 
{A,B}deletechar Borra en B los caracteres indicados deletechar(A,B)
{A}trim Quita espacios laterales de A trim(A)
en A. B debe ser un tipo simple.
 
{A,B}trimrightonechar QuitaDeja espaciossolo auna la derechaocurrencia de Acada trimrightonechar(A,B)
caracter de A, en B.
B debe ser un tipo simple.
 
{A,B}trimleftonlychar Deja en QuitaB espaciossolo alos lacaracteres izquierda de A trimleft onlychar(A,B)
señalados en A.
 
{A,B,C}padcenterposchar Centra Devuelve la cadenaposición en C entredonde un espacio padcenterposchar(A,B,C)
de B caracteres,cambia la secuencia de rellenandoun conmismo el
caracter A carcater B. A indica dirección:
A y B1 pueden= serde arrays,izquierda peroa el largoderecha.
de B debe0 ser= elde númeroderecha dea columnasizquierda.
de C. Ejemplo:
{1," "," Hola mundo! "}poschar
 
{A,B,C}padright Ajusta la cadena C entre un espacio padright(A,B,C) ==> 4
de B caracteres{0," rellenando"," Hola mundo! con el"}poschar
caracter A, hacia==> la derecha.14
A y B pueden ser arrays, pero el largo
{A,B,C}rleft Reemplaza cada caracter A con el de rleft(A,B debe ser el número de columnas,C)
caracter B de C., a la izquierda
Ejemplo:
 
{" ","."," mensaje "}rleft
{A,B,C}padleft Ajusta la cadena C entre un espacio padleft(A,B,C)
de B caracteres,==> rellenando con el...mensaje
caracter A, hacia la izquierda.
{A,B,C}rright Reemplaza cada caracter A con el rright(A y ,B pueden ser arrays, pero el largoC)
de B debecaracter serB elde númeroC, dea la columnasderecha
de C. Ejemplo:
{" ","."," mensaje "}rleft
 
==> mensaje...
{A,B}replicate
{A}replyby(B) Replica la cadena A, B veces. replicate(A,B)
A puede ser un array.
 
{A,B}cat Concatena A y B. cat(A,B)
 
{A,B}cut Corta la cadena B desde la primera cut(A,B)
ocurrencia del caracter A, desde la
izquierda hacia la derecha.
A y B pueden ser arrays.
 
{A,B}rcut Corta la cadena B desde la última rcut(A,B)
ocurrencia del caracter A, desde la
derecha hacia la izquierda.
A y B pueden ser arrays.
 
{A,B,C},copy Obtiene una subcadena de C, de copy(A,B,C)
tamaño A, contando desde B.
C y B pueden ser arrays.
 
{C,D,E}transform Cambia todas las instancias de C transform(C,D,E)
en E, con D.
C, D y E pueden ser arrays.
 
{B,C,D,E}transform Cambia todas las instancias de C transform(B,C,D,E)
en E, con D, contando desde la
ocurrencia B.
C, D y E pueden ser arrays.
 
{A,B,C,D,E}transform Cambia todas las instancias de C transform(A,B,C,D,E)
en E, con D, contando desde la
ocurrencia B, hasta la ocurrencia A.
C, D y E pueden ser arrays.
 
{A,B,C,D}replace Reemplaza A caracteres desde la replace(A,B,C,D)
posición B, de D, por C.
D puede ser un array.
 
{A,B,C}insert Inserta la cadena B en C, desde la insert(A,B,C)
posición A.
C y B pueden ser arrays.
 
{A,B,C}delete Borra A caracteres de C, desde la delete(A,B,C)
posición B.
C y B pueden ser arrays.
 
{A,B}deletechar Borra en B los caracteres indicados deletechar(A,B)
en A. B debe ser un tipo simple.
 
{A,B}onechar Deja solo una ocurrencia de cada onechar(A,B)
caracter de A, en B.
B debe ser un tipo simple.
 
{A,B}onlychar Deja en B solo los caracteres onlychar(A,B)
señalados en A.
 
{A,B,C}poschar Devuelve la posición en C donde poschar(A,B,C)
cambia la secuencia de un mismo
carcater B. A indica dirección:
1 = de izquierda a derecha.
0 = de derecha a izquierda.
Ejemplo:
{1," "," Hola mundo! "}poschar
==> 4
{0," "," Hola mundo! "}poschar
==> 14
 
{A,B,C}rleft Reemplaza cada caracter A con el rleft(A,B,C)
caracter B de C, a la izquierda
Ejemplo:
{" ","."," mensaje "}rleft
==> ...mensaje
 
{A,B,C}rright Reemplaza cada caracter A con el rright(A,B,C)
caracter B de C, a la derecha
Ejemplo:
{" ","."," mensaje "}rleft
==> mensaje...
{A,B,C}rall Reemplaza cada caracter A con el rall(A,B,C)
caracter B de C, a la derecha
Ejemplo:
{" ","."," mensaje "}rleft
==> ...mensaje...
 
{A}reverse Reversa una cadena. No acepta reverse(A)
arrays, solo tipo cadena simple.
 
countlines(A) Cuenta el total de líneas de la no existe
cadena A.
 
join(C) Concatena todos los elementos del no existe
stack, en la cadena C. Tipos distintos
a cadena, serán convertidos en el
proceso.
JOIN es sensible al separador de tokens
definido por TOKSEP.
JOIN no concatena elementos arrays.
 
{A,B,C}mask Enmascara la cadena C con el patrón mask(A,B,C)
B, rellenando los espacios remanentes
con el caracter A.
C puede ser un array.
Un caracter no nulo de C es representado
por el símbolo "#" dentro del patrón.
Ejemplo:
{"-","####.###-###","1ACW025"},mask
==> ---1.ACW-025
 
{A,B}money Convierte el número B a formato money(A,B)
moneda, con A decimales.
B puede ser un array.
Ejemplo:
{2,987678.356},money
==> 987,678.36
 
{A,B}saturate(C) Reemplaza cada campo en C, con no existe
cada token en A, separados por B.
Cada campo debe ser indizado,
iniciando en "0":
$0, $1, $n.
Ejemplo 1:
A = "Juanito Pérez,5.666.789-K,Calle 7 S/N,Lo Prado"
C = "Yo, $0, RUT nº $1,\nDirección particular $2, comuna $3"
{A,","}saturate(C), str to utf8,{"\n"}, print
imprime:
A = "Yo, Juanito Pérez, RUT nº 5.666.789-K,Calle 7 S/N,Lo Prado"
C =Dirección "Yo,particular $0,Calle RUT7 nº $1S/N,\nDirección particularcomuna $2, comunaLo $3"Prado
{A,","}saturate(C), str to utf8,{"\n"}, print
imprime La variable final "C" puede ser "largo-posición":
linea = "$0:25L$1:15L$2:20L$3:30R"
Campo: $n:M[LRC]
Yo, Juanito Pérez, RUT nº 5.666.789-K,donde:
Dirección particular Calle$n 7 S/N,= comunanúmero Lode Pradocampo.
M = tamaño del campo a rellenar.
La variable finalLCR "C"= puedeajusta serel campo hacia la izquierda (L), el centro (C), "largo-posición":y
la derecha (R).
linea = "$0:25L$1:15L$2:20L$3:30R"
{A,B}saturate(C) Reemplaza cada campo en C, con los
Campo: $n:M[LRC] tokens leídos desde A escritos en
largo-posición, cuyos tamaños son
donde: señalados por el array B.
$n = número de campo.
M La =variable tamañofinal del"C" campopuede aser rellenar.una cadena simple:
LCR = ajusta el campo hacia la izquierda (L), el centro (C), y
C la= derecha"$0, (R).$1, $2 \n $3"
 
{A,B}saturate(C) Reemplaza cada campo en C, con los
tokens leídos desde A escritos en
largo-posición, cuyos tamaños son
señalados por el array B.
La variable final "C" puede ser una cadena simple:
C = "$0, $1, $2 \n $3"
como también, largo-posición:
C = "$0:25L$1:15L$2:20L$3:30R"
 
OBSERVACION. La instrucción SATURATE está pensada para ser usada en combinación con lectura y escritura de archivos de texto, es decir, para transformación de datos.
545

edits