ctrans transforme les caractères d'une chaîne, codés sur 8 bits, en caractères codés sur 7 bits ou selon une table de conversion.
ctrans ( expr_c [ , chaine_i, chaine_o ] )
Elément | Description | Restrictions |
expr_c | Expression alphanumérique. | Aucune. |
chaine_i | Expression alphanumérique | Aucune |
chaine_o | Expression alphanumérique | Aucune |
# Programme affichant "Suppression des caracteres : a e i o u ..."
Infbox ctrans("Suppression des caractères : à è î ô ù ...")
# Comparaison de 2 chaînes de caractères, en ne tenant pas compte des
# majuscules ni des minuscules.
If toupper(ctrans(A)) = toupper(ctrans(B))
Infbox "A égal B"
Endif
# Préparation à l'affichage d'un nom dans une zone de masque ne
# permettant que des majuscules et des espaces.
MAJ = toupper(ctrans([F]VILLE))
ENTREE = sigma(I=32,64,chr$(I))+sigma(I=91,127,chr$(I))
# tous les caractéres imprimables, majuscules exceptées
MAJ = ctrans(MAJ,ENTREE,space$(127)
# aucun probléme si la chaîne de sortie est trop longue ...
[M]VILLE = vireblc(MAJ,5)
# on enléve les blancs en trop
# "23020 Saint-Thomas d'Aquîn s/mer" -> " SAINT THOMAS D AQUIN S MER"
# Même chose mais sans espaces
[M]VILLE = ctrans(MAJ,ENTREE,"")
# la même chaîne donnera "SAINTTHOMASDAQUINSMER"
ctrans avec un seul argument permet de transformer une chaîne de caractères en une chaîne de même longueur dont tous les caractères sont codés sur 7 bits. Les lettres accentuées (minuscules ou majuscules) sont transformées en lettres non accentuées, les caractères non imprimables en espaces et les semi-graphiques en "+", le caractère — en "-", et le caractère | en "!". Les autres caractères ne sont pas modifiés.
ctrans avec 3 arguments permet de transformer une chaîne de caractéres en une autre chaîne. Chaque caractére de la chaîne à transformer est recherché dans la deuxième chaîne - dite d'entrée. S'il n'existe pas il ne sera pas transformé. S'il existe on note son rang dans la chaîne d'entrée et il est remplacé par le caractére de la troisième chaîne - dîte de sortie se trouvant au même rang. Si son rang est supérieur à la longueur de la chaîne de sortie, il ne se retrouvera pas dans le résultat.
Le résultat est de type Char.