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:
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:
vsAnyText:=""
vsAnyText[[1]]:="A":
provocará o seguinte erro:
![](../../picture/27388/pict27388.EN.png)
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:
$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:
![](../../picture/27389/pict27389.EN.png)