1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
{ exemple pour majuscules, pour reprendre mon code ci-dessus }
function CharToMaj (c : char) : char ;
{ renvoie la majuscule correspondant à c, en supprimant
tous les signes diacritiques (accents, cédille) }
var
temp : char;
begin
{ on traite les cas possibles }
case c of
{ les minuscules "standard" }
'a'..'z' : tamp := Chr( Ord(c) - ( Ord('a') - Ord('A') ) );
{ et les caractères diacritiques }
'à', 'À','á', 'Á','â', 'Â','ã', 'Ã','ä', 'Ä','å', 'Å' : tamp := 'A' ;
'ç', 'Ç' : tamp := 'C' ;
'è', 'È','é', 'É','ê', 'Ê','ë', 'Ë' : tamp := 'E' ;
'ì', 'Ì','í', 'Í','î', 'Î','ï', 'Ï' : tamp := 'I' ;
'ñ', 'Ñ' : tamp := 'N' ;
'ò', 'Ò','ó', 'Ó','ô', 'Ô','õ', 'Õ','ö', 'Ö' : tamp := 'O' ;
'', '' : tamp := 'S' ;
'ù', 'Ù','ú', 'Ú','û', 'Û','ü', 'Ü' : tamp := 'U' ;
'ý', 'Ý','ÿ', '' : tamp := 'Y' ;
{ pour tous les autres, pas de modification, donc on renvoie c }
else tamp := c;
end ;
CharToMaj := tamp;
end;
function StrToMaj (const s : string) : string;
var
tamp : string;
i : integer;
begin
{ on va travailler avec une copie locale, pour ne pas modifier
la chaine d'origine }
tamp := s;
{ et on traite tous les caractères de tamp }
for i:=1 to length(tamp) do tamp[i] := CharToMaj(tamp[i]);
StrToMaj := tamp;
end; |