Free Tools CodeS-SourceS.com
Programmez!
PCInfo Web


Sélection logiciels

TCPView v2.4

Winamp v5.56

Simple v0.1.1

Google Chrome Frame v1.0

FireFox 3 Bêta 3 v3 Bêta 3


En bref

29 Avr 2011 L'iPhone 4 blanc désormais en vente

06 Avr 2011 Des développeurs font marcher GMail Motion, le poisson d'avril de Google

25 Fév 2011 Mac OS X Lion : le roi de la jungle pointe le bout de son nez

09 Fév 2011 OVH lance sa no!Box : l'offre Simple Play la plus simple du marché

01 Fév 2011 Twitter et Google s'unissent pour parer à la censure égyptienne


Les derniers dossiers


Les ressources Delphi et C/C++

Music Pro

Dessin de texte sur un canvas

Comparer strings sans tenir compte des accents

Drag & Drop à partir d'une fenêtre Windows

SMTPCLIENT et SMTPMESS : Envoyer des mails


Membres en ligne

+10 visiteurs en ligne


Nos partenaires

Espacerezo

KilaSoft



Vous êtes ici : AccueilDelphiSnippets › Comparer strings sans tenir compte des accents

Comparer strings sans tenir compte des accents

Informations sur la source :

Auteur : Thwilliam

Catégorie : Les Bases

Niveau : Débutant

Déposé le : 24 Avril 2010 à 11h17

0 commentaire sur ce snippet


Description

Fonction ExAnsiCompareText : comparaison de 2 strings sans tenir compte des majuscules-minuscules ni des accents. Renvoie 0 si les 2 chaines sont identiques.

Fonction ExLowerCase : convertit un string en minuscules en remplaçants les caractères accentués. Utile lors d'une recherche de sous-chaine avec la fonction Pos.

 


Code Source

1
23
45
67
89
1011
1213
1415
1617
1819
2021
2223
2425
2627
2829
3031
3233
3435
3637
function ExAnsiCompareText(const S1, S2: string): integer;
begin   Result := CompareString(LOCALE_USER_DEFAULT, NORM_IGNORECASE or
             NORM_IGNORENONSPACE, PChar(S1),             Length(S1), PChar(S2), Length(S2)) - 2;
end; 
 function ExLowerCase(const S: string): string;
var  Ch: Char;
  L: Integer;  Source, Dest: PChar;
begin  L := Length(S);
  SetLength(Result, L);  Source := Pointer(S);
  Dest := Pointer(Result);  while L <> 0 do
  begin    Ch := Source^;
    if (Ch >= 'A') and (Ch <= 'Z') then Inc(Ch, 32)    else
       case Ch of         'à', 'ä', 'â', 'å', 'Ä','Â', 'á': Ch:= 'a';
         'é', 'è', 'ë', 'ê', 'Ë','Ê','É' : Ch:= 'e';         'ï', 'î', 'ì', 'í', 'Î', 'Ï': Ch:= 'i';
         'ö','ô','ò','Ö', 'Ô', 'ó': Ch:= 'o';         'ü', 'ù', 'û', 'ú', 'Û', 'Ü': Ch:= 'u';
         'ç': Ch:= 'c';       end;
    Dest^ := Ch;    Inc(Source);
    Inc(Dest);    Dec(L);
  end;end;


Autres contributions de Thwilliam


Commentaires sur le snippet

Soyez le premier à commenter cette ressource !


Ajoutez votre commentaire & avis sur la ressource :

Vous n'êtes pas connecté !

Rejoignez dès maintenant la communauté en 3 clics et exprimez votre avis !

J'ai déjà un compte