4D v16.3

Símbolos de referência de caracteres

Página Inicial

 
4D v16.3
Símbolos de referência de caracteres

Símbolos de referência de caracteres  


 

Os símbolos de índice de cadeia são os seguintes: [[...]]

Estes símbolos são utilizados para determinar um caractere particular em uma cadeia. Esta sintaxe permite referenciar um caractere em um campo ou uma variável de tipo Alfa ou Texto.

Nota: a partir de 4D v13, não é possível visualizar os antigos símbolos em Mac OS, no editor de métodos (≤...≥).

Se os símbolos de referência de caracteres aparecerem à esquerda do operador de atribuição (:=),  um caractere é atribuído à posição referenciada na cadeia. Por exemplo, se vsNome não for uma cadeia vazia, a seguinte linha passa  a ser o primeiro caractere de vsNome a maiúsculas:

 
 If(vsNome#"")
    vsNome[[1]]:=Uppercase(vsNome[[1]])
 End if


Por outro lado, se os símbolos de referência aparecerem em uma expressão, devolvem o caractere (ao qual fazem referência) como uma cadeia de um caractere. Por exemplo:
  ` O seguinte exemplo testa se o último caractere de vtText é o caractere "@"

 If(vtText#"")
    If(Character code(Substring(vtText;Length(vtText);1))=At sign)
  ` ...
    End if
 End if
 
  ` Utilizando a sintaxe de referência dos caracteres, escreva de uma maneira simples:
 If(vtText#"")
    If(Character code(vtText[[Length(vtText)]])=At sign)
  ` ...
    End if
 End if

Quando utilizar os símbolos de referência de caracteres, deve endereçar aos caracteres existentes na cadeia da mesma forma que endereça os elementos de um array. Por exemplo se endereça o caractere 20 de uma variável de cadeia, esta variável DEVE conter pelo menos 20 caracteres.

  • Não respeitar esta condição, em modo interpretado, não provoca um erro de sintaxe.
  • Não respeitar esta condição, em modo compilado (sem opções), pode trazer uma corrupção de memória, se, por exemplo, escrever um caractere além do final de uma cadeia ou um texto.
  • Não respeitar esta condição em modo compilado, provoca um erro quando  o controle de execução for ativado. Por exemplo, ao executar o seguinte código:
  ` ¡No faça isso!
 vsAnyText:=""
 vsAnyText[[1]]:="A":
provocará o seguinte erro:

Exemplo  

O seguinte método de projeto coloca em maiúsculas o primeiro caractere de cada palavra do texto recebido como parâmetro e devolve o texto modificado:

  ` Método de projeto Passar a maiúsculas
  ` Passar a maiúsculas ( Texto ) -> Text
  ` Passar a maiúsculas ( Texto fonte ) -> Texto com letras em maiúsculas

 $0:=$1$vlLen:=Length($0)
 If($vlLen>0)
    $0[[1]]:=Uppercase($0[[1]])
    For($vlChar;1;$vlLen-1)
       If(Position($0[[$vlChar]];" !&()-{}:;<>?/,.=+*")>0)
          $0[[$vlChar+1]]:=Uppercase($0[[$vlChar+1]])
       End if
    End for
 End if

Por exemplo, a linha:
ALERT(Capitalize text ("olá, meu nome é João da Silva e sou candidato a presidente!"))

Mostra o seguinte alerta:



Ver também 

Char
Character code
Códigos ASCII
Tipos de dados

 
PROPRIEDADES 

Produto: 4D
Tema: String

 
HISTÓRIA 

 
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)