VIRER LES ACCENTS D'UN TEXTE

DelphiCool Messages postés 455 Date d'inscription mardi 24 juillet 2001 Statut Membre Dernière intervention 10 mars 2009 - 22 mai 2002 à 22:40
Seb2212 Messages postés 12 Date d'inscription vendredi 24 janvier 2003 Statut Membre Dernière intervention 8 février 2010 - 25 oct. 2009 à 18:44
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/11925-virer-les-accents-d-un-texte

Seb2212 Messages postés 12 Date d'inscription vendredi 24 janvier 2003 Statut Membre Dernière intervention 8 février 2010
25 oct. 2009 à 18:44
Beaucoup plu srapide ;)

function EnleverAccents(const SChaine: string): string;
var
PResult: PChar;
PStr: PChar;
TmpChaine: string;
begin
TmpChaine := SChaine;
Result := TmpChaine;
PResult := PChar(Result);
PStr := PChar(TmpChaine);
while PStr[0] <> #0 do
begin
case PStr[0] of
#192..#197: PResult[0] := 'A';
#199: PResult[0] := 'C';
#200..#203: PResult[0] := 'E';
#204..#207: PResult[0] := 'I';
#209: PResult[0] := 'N';
#210..#214: PResult[0] := 'O';
#138: PResult[0] := 'S';
#217..#220: PResult[0] := 'U';
#159, #221: PResult[0] := 'Y';
#142: PResult[0] := 'Z';
#224..#229: PResult[0] := 'a';
#231: PResult[0] := 'c';
#232..#235: PResult[0] := 'e';
#236..#239: PResult[0] := 'i';
#241: PResult[0] := 'n';
#242..#246: PResult[0] := 'o';
#154: PResult[0] := 's';
#249..#252: PResult[0] := 'u';
#253, #255: PResult[0] := 'y';
#158: PResult[0] := 'z';
end;
Inc(PResult);
Inc(PStr);
end;
end;
cs_ILP Messages postés 28 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 24 septembre 2012
22 mai 2008 à 16:21
J'ai plus court comme fonction :

// Enlève les accents d'une chaîne de caractères
function EnleverAccents(Chaine: String; Espace: Boolean = True): String;
const
AvecAccent = 'àáâãäåæçèéêëìíîïñòóôõöøšùúûüýžþÿœÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØŠÙÚÛÜÝŽÞߌ€£$¥';
SansAccent = 'aaaaaaaceeeeiiiinoooooosuuuuyztyeAAAAAAACEEEEIIIINOOOOOOSUUUUYZTSEELSY';
var
i: Integer;
begin
Result := Chaine;
for i := 0 to Length(AvecAccent) - 1 do
Result := AnsiReplaceStr(Result, AvecAccent[i], SansAccent[i]);
if Espace then
Result := AnsiReplaceStr(Result, ' ', '_');
end;
Honflor Messages postés 4 Date d'inscription mardi 17 février 2004 Statut Membre Dernière intervention 18 octobre 2005
18 oct. 2005 à 12:16
Avez-vous finalement trouvé une solution ?
Moi je suis confrontée au prob aujourd'hui avec une base orable derrière, je ne trouve pas de solution

Merci
DelphiCool Messages postés 455 Date d'inscription mardi 24 juillet 2001 Statut Membre Dernière intervention 10 mars 2009
22 mai 2002 à 22:40
j'y ai pensé aussi
avec un case of

mais j'ai fait expres de laisser ainsi pour la comprehension la methode
executter Messages postés 4 Date d'inscription mercredi 22 mai 2002 Statut Membre Dernière intervention 23 janvier 2004
22 mai 2002 à 22:33
en utilisant les codes ascii t'aurais pu économiser un peu de code ... mais elle fait quand même très bien son boulot. A+
DelphiCool Messages postés 455 Date d'inscription mardi 24 juillet 2001 Statut Membre Dernière intervention 10 mars 2009
17 mai 2002 à 23:03
ben comme je l'ai dit, c'est une réponse à une question du forum

Puis koko, le monde n'est t'il pas fait de paradox? ;-)
cs_koko Messages postés 654 Date d'inscription lundi 14 janvier 2002 Statut Membre Dernière intervention 20 février 2005
17 mai 2002 à 22:59
c marrant : un petit virus puis un gentil petit prog pour virer les accents... quel paradoxe
DelphiCool Messages postés 455 Date d'inscription mardi 24 juillet 2001 Statut Membre Dernière intervention 10 mars 2009
17 mai 2002 à 21:45
ben non c'est po compliqué.
cs_Gysmo Messages postés 209 Date d'inscription lundi 11 février 2002 Statut Membre Dernière intervention 13 décembre 2002
17 mai 2002 à 21:41
Je sais pas pk je pensais ke cela allais etre plus compliqué!!!

Arf c'est peu etre parceque je suis trop sur mon prob!!!

@+
Rejoignez-nous