versión 11 (Modificado)
Position (aBuscar; laCadena{; inicio{; longEncont{; *}}}) Num
Parámetro | Tipo | Descripción | |
aBuscar | Alfa | Cadena a buscar | |
laCadena | Alfa | Cadena en la cual buscar | |
inicio | Numérico | Posición en la cadena donde comenzar la búsqueda | |
longEncont | Ent. largo | Longitud de la cadena encontrada | |
* | * | Si se pasa: búsqueda diacrítica | |
Resultado | Num | Posición de la primera ocurrencia |
Descripción
Position devuelve la posición de la primera ocurrencia de aBuscar en laCadena.
Si laCadena no contiene buscar, devuelve cero (0).
Si Position ubica una ocurrencia de aBuscar, la función devuelve la posición del primer carácter de esta ocurrencia en laCadena.
Si pregunta por la posición de una cadena vacía dentro de una cadena vacía, Position devuelve cero (0).
Por defecto, la búsqueda comienza en el primer carácter de laCadena. El parámetro opcional inicio permite precisar el carácter donde la búsqueda debe comenzar en laCadena.
El parámetro longEncont, si se pasa, devuelve la longitud de la cadena encontrada por la búsqueda. Este parámetro es necesario para poder gestionar correctamente cartas escritas con uno o más caracteres (ejemplo: æ y ae, ß y ss, etc.).
Tenga en cuenta que cuando se pasa el parámetro * (modo diacrítico, ver a continuación), estas letras no se consideran como equivalente (æ # ae); en modo diacrítico, longEncont siempre es igual a la longitud de aBuscar (si se encuentra una ocurrencia).
Si se pasa el parámetro *, indica que la búsqueda debe ser diacrítica, es decir que debe tener en cuenta caracteres en mayúsculas y minúsculas y los caracteres acentuados (a # A, à # a, etc.)
Advertencia: No puede utilizar el carácter arroba @ con Position. Por ejemplo, si pasa "abc@" en aBuscar, el comando buscará la cadena "abc@" y no "abc" seguido de otros caracteres.
Ejemplos
1. Este ejemplo ilustra el uso de Position. Los resultados, descritos en los comentarios, se asignan a la variable vlResult.
vlResult := Position ("ll"; "Billar") ` vlResult toma el valor 3 vlResult := Position (vtText1; vtText2) ` Posición de la primera ocurrencia de vtText1 en vtText2 vlResult := Position ("todo"; "todos los procesos dentro de un método";1) ` vlResult toma el valor 1 vlResult := Position ("todo"; "todos los procesos dentro de un método";2) ` vlResult toma el valor 35 vlResult := Position ("TODO"; "todos los procesos dentro de un método";1;*) ` vlResult toma el valor 0 vlResult := Position (""; "Buf";1;$largo) ` vlResult =2, $largo= 1
2. En el siguiente ejemplo, el parámetro longEncont permite buscar todas las ocurrencias de "aegis" en un texto, sin importar cómo está escrito:
$inicio:=1 Repeat vlResult := Position ("aegis";$text;$inicio;$longEncont) $inicio:= $inicio+$longEncont Until(vlResult =0)
Ver también
Operadores de comparación, Substring.