Sintaxis
AT( <expresión carácter 1>, <expresión carácter 2> )
Propósito
Devuelve la posición de una expresión dentro de otra expresión.
Si la expresión carácter 1 se encuentra dentro de la expresión carácter 2, la función AT() devuelve un valor numérico entero para indicar la posición de la primera ocurrencia. Si no se encuentra la expresión, devuelve cero.
Argumentos
< expresión carácter 1 >
Define la expresión que se buscará y ubicará en la segunda expresión carácter.
< expresión carácter 2 >
Define la expresión que se buscará para ubicar la primera ocurrencia de la expresión carácter 1 especificada.
Utilización
La función AT() es muy útil para buscar el contenido de variables o campos de los archivos de datos, cuando estos son desconocidos o solo se conocen parcialmente. Además, esta determina la posición en la cual una expresión se encuentra dentro de otra.
Sugerencias
En caso que solo sea necesario determinar si la expresión carácter 1 está incluida en la expresión carácter 2, sin importar su posición, utilice el operador $ (contiene).
Para obtener la posición inicial de la última ocurrencia, utilice la función RAT(), porque esta realiza la búsqueda de derecha a izquierda, mientras la función AT() busca de izquierda a derecha.
Ejemplos
AT("a", "abcde") // Resulta: 1
AT("bcd", "abcde") // Resulta: 2
AT("a", "bcde") // Resulta: 0
Este ejemplo divide una cadena de caracteres con base en la posición de una coma dentro de la cadena de caracteres destino:
LOCAL cTarget := "Langtree, Lilly"
SUBSTR(cTarget, 1, AT(",", cTarget) - 1) // Resulta: Langtree
SUBSTR(cTarget, AT(",", cTarget) + 2) // Resulta: Lilly