4D v19Position | 
            ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
                 
                
  | 
                
			
                    
                         
    4D v19
 
Position 
                                
                                
        
 | 
                |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Position ( pesquisar ; cadeia {; inicio {; comprEncont}}{; *} ) -> Resultado | ||||||||
| Parâmetro | Tipo | Descrição | ||||||
| pesquisar | String | 
             
         | 
        Cadeia a procurar | |||||
| cadeia | String | 
             
         | 
        Cadeia na qual procurar | |||||
| inicio | Inteiro longo | 
             
         | 
        Posição na cadeia onde iniciar a pesquisa | |||||
| comprEncont | Inteiro longo | 
             
         | 
        Comprimento da cadeia encontrada | |||||
| * | Operador | 
             
         | 
        Se passado: avaliação baseada em códigos de caracteres | |||||
| Resultado | Inteiro longo | 
             
         | 
        Posição da primeira ocorrência | |||||
| Position ( pesquisar ; string ; inicio ; comprimentoEncontrado ; opções ) -> Resultado | ||||||||
| Parâmetro | Tipo | Descrição | ||||||
| pesquisar | String | 
             
         | 
        String a pesquisar | |||||
| string | String | 
             
         | 
        texto no qual procurar | |||||
| inicio | Inteiro longo | 
             
         | 
        Posição no texto onde a pesquisa começa | |||||
| comprimentoEncontrado | Inteiro longo | 
             
         | 
        Comprimento do texto encontrado | |||||
| opções | Inteiro longo | 
             
         | 
        Condições de pesquisa | |||||
| Resultado | Inteiro longo | 
             
         | 
        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.).
Se passar o parâmetro * (ver abaixo), estas letras não são consideradas como sendo equivalentes (æ # ae); em modo diacritico,  comprEncont sempre é igual ao comprimento de pesquisar (se for encontrada uma ocorrência).
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, pode pasasr
Nota: em certos casos, usar o parâmetro * pode acelerar significativamente a execução do comando.
| Constante | Valor | Comentário | 
| sk case insensitive | 2 | As strings são comparadas segundo a linguagem atual dos dados sem levar em consideração as diferenças de maiúsculas e minúsculas. Note que os signos diacríticos são levados em consideração. Por exemplo, "A" é considerado a mesma coisa que "a". Entretanto "a" não é considerado o mesmo que "à" .  
  | 
		
| sk char codes | 1 | As strings são comparadas segundo os códigos de caracteres. Os parâmetros atuais da linguagem de dados não são levados em consideração durante a comparação. Pode ser combinada com: sk case insensitive Só para os intervalos "a-z" ou "A-Z". (por exemplo., Alpha = alpha, mas Alpha # âlphà)  | 
		
| sk diacritic insensitive | 4 | As strings são comparadas de acordo com a linguagem atual dos dados. Entretanto, os acentos ou símbolos das letras são ignorados. Por exemplo, "a" é considerado a mesma coisa que "à". 
 Pode ser combinado com 
 
  | 
		
| sk kana insensitive | 8 | Para a linguagem japonesa. Strings são comparadas de acordo com o sentido (não o estilo de escrita) na linguagem de dados atual. por exemplo, "あ" em hiragana é considerada a mesma coisa que "ア" em katakana. Quando esta opção for estabelecida, sk width insensitive está implícito (considerado estabelecido), entretanto, o contrário não é verdade. 
 Pode ser combinado com: 
  | 
		
| sk strict | 0 | Strings são comparadas para correspondências exatas de acordo com a linguagem atual. Na maioria dos casos, capitalização e marcas diacríticas de letras são levadas em consideração durante a comparação. Pode ser combinado com: 
  | 
		
| sk whole word | 32 | Strings são comparadas de acordo com a lingaugem de dados atual. Apenas strings que são palavras completas são consideradas. Strings correspondentes a outras strings não são consideradas. Por exemplo, "where" não é considerado quando encontrado dentro de "somewhere". Pode ser combinado com:  | 
		
| sk width insensitive | 16 | Para a linguagem japonesa. Strings são comparadas por tamanho de caractere de acordo com a linguagem de dados atual. por exemplo, "ア" é considerado o mesmo que "ア". 
 Can be combined with: 
  | 
		
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= 1No 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)No exemplo abaixo, se quiser encontrar todas as instâncias de uma string e substituí-la:
 var $lengthFound : Integer
 
 $string:="Hello Joelle and joel!"
 $find:="joel"
 $replace:="Joël"
 $option:=sk case insensitive+sk diacritic insensitive
 
 $p:=0
 Repeat
    $p:=Position($find;$string;$p+1;$lengthFound;$option)
    If($p>0)
       $string:=Substring($string;1;$p-1)+$replace+Substring($string;$p+$lengthFound)
    End if
 Until($p<=0) //resultado: $string -> Hello Joëlle and Joël!
	Produto: 4D
	Tema: String
	Número 
        15
        
        
        
	
	Modificado: 4D v11 SQL  
	Modificado: 4D v18 R6
	
	Manual de linguagem 4D ( 4D v19)
	
	
	Manual de linguagem 4D ( 4D v19.1)
Adicionar um comentário