4D v16.3

Position

Inicio

 
4D v16.3
Position

Position 


 

Position ( aBuscar ; laCadena {; inicio {; longEncont}}{; *} ) -> Resultado 
Parámetro Tipo   Descripción
aBuscar  Cadena in Cadena a buscar
laCadena  Cadena in Cadena en la cual buscar
inicio  Entero largo in Posición en la cadena donde comenzar la búsqueda
longEncont  Entero largo in Longitud de la cadena encontrada
Operador in Si se pasa: búsqueda diacrítica
Resultado  Entero largo in 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).

Por defecto, el comando hace comparaciones globales teniendo en cuenta particularidades lingüísticas y letras que pueden estar escritas con uno o más caracteres (por ejemplo æ = ae). Por otra parte, no es diacrítica (a=A, a=à etc.) y no tiene en cuenta los caracteres "ignorables". Los caracteres ignorables incluyen todos los caracteres del subset unicode CO Control (U+0000 a U+001F, ascii character control set) excepto los caracteres imprimibles (U+0009 TAB, U+0010 LF, U+0011 VT, U+0012 FF y U+0013 CR).
Para modificar este funcionamiento, pase asterisco * como último parámetro. En este caso, las comparaciones se basan en los códigos de los caracteres. Debe pasar el parámetro *:
  • Si quiere tener en cuenta caracteres especiales, utilizados por ejemplo como delimitadores (Char(1), etc.),
  • Si la evaluación de caracteres debe ser sensible a las mayúsculas y minúsculas y tener en cuenta los caracteres acentuados (a # A, à # a, etc.)
    Note que en este modo, la evaluación no maneja variaciones en la escritura de las palabras.            

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)



Ver también 

Operadores de comparación
Substring

 
PROPIEDADES 

Producto: 4D
Tema: Cadenas de caracteres
Número 15

This command can be run in preemptive processes

 
HISTORIA 

Modificado: 4D v11 SQL

 
ARTICLE USAGE

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)