Salve a tutti.
Sto realizzando un piccolo programma per tradurre le frasi in Albhed (http://it.wikipedia.org/wiki/Al_Bhed#Lingua_Al_Bhed). Per fare tutto ciò mi affido a questa funzione:
' Modulo di traduzione Italiano-Albhed
PUBLIC FUNCTION Traduci(FraseOrigine AS String) AS String
DIM FraseDestinazione AS String
DIM CarattereDaTradurre AS String
DIM i AS Integer
FOR i = 1 TO Len(FraseOrigine)
CarattereDaTradurre = Mid(FraseOrigine, i, 1)
SELECT CASE CarattereDaTradurre
'Lettere Maiuscole
CASE "A"
FraseDestinazione &= "Y"
CASE "B"
FraseDestinazione &= "P"
CASE "C"
FraseDestinazione &= "L"
CASE "D"
FraseDestinazione &= "T"
CASE "E"
FraseDestinazione &= "A"
CASE "F"
FraseDestinazione &= "V"
CASE "G"
FraseDestinazione &= "K"
CASE "H"
FraseDestinazione &= "R"
CASE "I"
FraseDestinazione &= "E"
CASE "J"
FraseDestinazione &= "Z"
CASE "K"
FraseDestinazione &= "G"
CASE "L"
FraseDestinazione &= "M"
CASE "M"
FraseDestinazione &= "S"
CASE "N"
FraseDestinazione &= "H"
CASE "O"
FraseDestinazione &= "U"
CASE "P"
FraseDestinazione &= "B"
CASE "Q"
FraseDestinazione &= "X"
CASE "R"
FraseDestinazione &= "N"
CASE "S"
FraseDestinazione &= "C"
CASE "T"
FraseDestinazione &= "D"
CASE "U"
FraseDestinazione &= "I"
CASE "V"
FraseDestinazione &= "J"
CASE "W"
FraseDestinazione &= "F"
CASE "X"
FraseDestinazione &= "Q"
CASE "Y"
FraseDestinazione &= "O"
CASE "Z"
FraseDestinazione &= "W"
'Lettere accentate
CASE "À"
FraseDestinazione &= "Ý"
CASE "È"
FraseDestinazione &= "À"
CASE "É"
FraseDestinazione &= "Á"
CASE "Ì"
FraseDestinazione &= "È"
CASE "Ò"
FraseDestinazione &= "Ù"
CASE "Ù"
FraseDestinazione &= "Ì"
'Lettere minuscole
CASE "a"
FraseDestinazione &= "y"
CASE "b"
FraseDestinazione &= "p"
CASE "c"
FraseDestinazione &= "l"
CASE "d"
FraseDestinazione &= "t"
CASE "e"
FraseDestinazione &= "a"
CASE "f"
FraseDestinazione &= "v"
CASE "g"
FraseDestinazione &= "k"
CASE "h"
FraseDestinazione &= "r"
CASE "i"
FraseDestinazione &= "e"
CASE "j"
FraseDestinazione &= "z"
CASE "k"
FraseDestinazione &= "g"
CASE "l"
FraseDestinazione &= "m"
CASE "m"
FraseDestinazione &= "s"
CASE "n"
FraseDestinazione &= "h"
CASE "o"
FraseDestinazione &= "u"
CASE "p"
FraseDestinazione &= "b"
CASE "q"
FraseDestinazione &= "x"
CASE "r"
FraseDestinazione &= "n"
CASE "s"
FraseDestinazione &= "c"
CASE "t"
FraseDestinazione &= "d"
CASE "u"
FraseDestinazione &= "i"
CASE "v"
FraseDestinazione &= "j"
CASE "w"
FraseDestinazione &= "f"
CASE "x"
FraseDestinazione &= "q"
CASE "y"
FraseDestinazione &= "o"
CASE "z"
FraseDestinazione &= "w"
'Lettere Accentate Minuscole
CASE "à"
FraseDestinazione &= "ý"
CASE "è"
FraseDestinazione &= "à"
CASE "é"
FraseDestinazione &= "á"
CASE "ì"
FraseDestinazione &= "è"
CASE "ò"
FraseDestinazione &= "ù"
CASE "ù"
FraseDestinazione &= "ì"
CASE ELSE
FraseDestinazione &= CarattereDaTradurre
END SELECT
NEXT
RETURN FraseDestinazione
END
Il problema sorge quando tento di "convertire" le lettere accentate: anche se sono inserite nel Case come potete ben vedere, nell'output escono come un case else.
Forse è dovuto al fatto che Gambas (uso la versione 2.5) non accetti le lettere accentate nei Case? :-?
Delucidatemi voi.
Il metodo di md9327 funziona!
Ora ho sistemato il Case Else in
FraseDestinazione &= String.Chr(CarattereDaTradurre)
e anche qui va che è una meraviglia! :-D
Ora devo settare tutti i case con i valori numerici, palloso ma va fatto!
Grazie mille per il vostro preziosissimo aiuto!