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.
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:
If(vtText#"")
If(Character code(Substring(vtText;Length(vtText);1))=At sign)
End if
End if
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.
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:
