Los símbolos de índice de cadena son los siguientes: [[...]]
Estos símbolos se utilizan para designar un carácter particular en una cadena. Esta sintaxis permite referenciar un carácter en un campo o una variable de tipo Alfa o Texto.
Nota de compatibilidad: a partir de 4D v13, no es posible visualizar los antiguos símbolos Mac OS en el editor de métodos (≤...≥).
Si los símbolos de referencia de caracteres aparecen a la izquierda del operador de asignación (:=), se asigna un carácter a la posición referenciada en la cadena. Por ejemplo, si vsNombre no es una cadena vacía, la siguiente línea pasa el primer carácter de vsNombre a mayúsculas:
If(vsName#"")
vsName[[1]]:=Uppercase(vsName[[1]])
End if
Si los símbolos de referencia aparecen en una expresión, devuelven el carácter (al cual hacen referencia) como una cadena de un caracter. Por ejemplo:
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
Cuando utiliza los símbolos de referencia de caracteres, debe direccionar a los caracteres existentes en la cadena de la misma forma que direcciona los elementos de un array. Por ejemplo si direcciona el carácter 20 de una variable de cadena, esta variable DEBE contener por lo menos 20 caracteres.
- No respetar esta condición, en modo interpretado, no provoca un error de sintaxis.
- No respetar esta condición, en modo compilado (sin opciones), puede traer una corrupción de memoria, si, por ejemplo, escribe un carácter más allá del final de una cadena o un texto.
- No respetar esta condición en modo compilado, provoca un error cuando se activa el control de ejecución. Por ejemplo, al ejecutar el siguiente código:
vsAnyText:=""
vsAnyText[[1]]:="A"
provocará el siguiente error:

El siguiente método de proyecto coloca en mayúsculas el primer carácter de cada palabra del texto recibido como parámetro y devuelve el 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 ejemplo, la línea:
ALERT(Capitalize text("hola, mi nombres es Juan Díaz y soy candidato a presidente!"))
Muestra la siguiente alerta:
