4D v16.3

Position

Página Inicial

 
4D v16.3
Position

Position 


 

Position ( pesquisar ; cadeia {; inicio {; comprEncont}}{; *} ) -> Resultado  
Parâmetro Tipo   Descrição
pesquisar  String in Cadeia a procurar
cadeia  String in Cadeia na qual procurar
inicio  Inteiro longo in Posição na cadeia onde iniciar a pesquisa
comprEncont  Inteiro longo in Comprimento da cadeia encontrada
Operador in Se passado: avaliação baseada em códigos de caracteres
Resultado   Inteiro longo in Posição da primeira ocorrência

Position devolve a posição da primeira ocorrência de pesquisar em cadeia.

Se cadeia não contiver pesquisar, devolve zero (0).

Se Position localiza uma ocorrência de pesquisar, a função devolve a posição do primeiro caractere desta ocorrência em cadeia.

Se pergunta pela posição de uma cadeia vazia dentro de uma cadeia vazia, Position devolve zero (0).

O parâmetro comprEncont, se for passado, devolve o comprimento da cadeia atualmente encontrada pela pesquisa. Este parâmetro é necessário para poder gerir corretamente letras escritas com um ou mais caracteres (exemplo: æ ou ae, ß ou ss, etc.).

Note que quando se passa o parâmetro *, estas letras não são consideradas como sendo equivalentes (æ # ae); nesse modo, comprEncont sempre é igual ao comprimento de pesquisar (se for encontrada uma ocorrência).

Como padrão, uma pesquisa começa com o primeiro caractere de  umaString. O parâmetro opcional start pode ser usado para especificar o caractere onde a pesquisa vai começar em umaString.

Como padrão, o comando faz comparações globais que consideram particularidades linguísticas e letras que podem estar escritas com um ou mais caracteres (por exemplo æ = ae). Por outra parte, se não for diacrítica (a=A, a=à etc.) e não considera os caracteres "ignoráveis". Os caracteres ignoráveis incluem todos os caracteres do subset unicode CO Control (U+0000 a U+001F, ascii character control set) exceto os caracteres imprimíveis (U+0009 TAB, U+0010 LF, U+0011 VT, U+0012 FF e U+0013 CR).

Para modificar este funcionamento, passe asterisco * como último parâmetro. Neste caso, as comparações são baseados nos códigos dos caracteres. Deve passar o parâmetro *:
  • Se deseja considera caracteres especiais, utilizados por exemplo como delimitadores (Char(1), etc.),
  • Se a avaliação de caracteres deve ser sensível às maiúsculas e minúsculas e considera os caracteres acentuados (a # A, à # a, etc.)
  • Note que neste modo, a avaliação não maneja variações na maneira em que as palavras são escritas.            

Nota: em certos casos, usar o parâmetro  * pode acelerar significativamente a execução do comando. 

Advertência: não pode utilizar o caractere arroba @ com Position. Por exemplo, se passa "abc@" em pesquisar, o comando pesquisará a cadeia "abc@" e não por "abc" seguido de outros caracteres.

Este exemplo ilustra o uso de Position. Os resultados, descritos nos comentários, são atribuídos à variável vlResult.

 vlResult:=Position("ll";"Bilhar") ` vlResult toma o valor 3
 vlResult:=Position(vtText1;vtText2) ` Posição da primeira ocorrência de vtText1 em vtText2
 vlResult:=Position("todo";"todos os processos dentro de um método";1) ` vlResult toma o valor 1
 vlResult:=Position("todo";"todos os processos dentro de um método";2) ` vlResult toma o valor 35
 vlResult:=Position("TODO";"todos os processos dentro de um método";1;*) ` vlResult toma o valor 0
 vlResult:=Position("œ";"Bœuf";1;$comprimento` vlResult =2, $comprimento= 1

No exemplo abaixo, o parâmetro comprEncont permite pesquisar todas as ocorrências de "aegis" em um texto, sem importar como está escrito:

 $inicio:=1
 Repeat
    vlResult:=Position("aegis";$text;$inicio;$longEncont)
    $inicio:=$inicio+$comprEncont
 Until(vlResult=0)



Ver também 

Operadores de Comparação
Substring

 
PROPRIEDADES 

Produto: 4D
Tema: String
Número 15

This command can be run in preemptive processes

 
HISTÓRIA 

Modificado: 4D v11 SQL

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v16)
Manual de linguagem 4D ( 4D v16.1)
Manual de linguagem 4D ( 4D v16.2)
Manual de linguagem 4D ( 4D v16.3)