4D v16.3Position |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
Position
|
Position ( aBuscar ; laCadena {; inicio {; longEncont}}{; *} ) -> Resultado | ||||||||
Parámetro | Tipo | Descripción | ||||||
aBuscar | Cadena |
![]() |
Cadena a buscar | |||||
laCadena | Cadena |
![]() |
Cadena en la cual buscar | |||||
inicio | Entero largo |
![]() |
Posición en la cadena donde comenzar la búsqueda | |||||
longEncont | Entero largo |
![]() |
Longitud de la cadena encontrada | |||||
* | Operador |
![]() |
Si se pasa: búsqueda diacrítica | |||||
Resultado | Entero largo |
![]() |
Posición de la primera ocurrencia | |||||
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).
Nota: en ciertos casos, utilizar el parámetro * puede acelerar significativamente la ejecución del comando.
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.
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("œ";"Bœuf";1;$largo) ` vlResult =2, $largo= 1
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)
Producto: 4D
Tema: Cadenas de caracteres
Número
15
Modificado: 4D v11 SQL
Manual de lenguaje 4D ( 4D v16)
Manual de lenguaje 4D ( 4D v16.1)
Manual de lenguaje 4D ( 4D v16.2)
Manual de lenguaje 4D ( 4D v16.3)