Delphi - Les différences entre les CompareStr et CompareString
-
21-09-2019 - |
Question
J'espère que quelqu'un peut faire la lumière sur ce point pour moi:
Quelles sont les différences, en Delphi 2009, entre les fonctions CompareStr
(définies dans SysUtils) et CompareString
(à partir de Windows API)?
Les deux vous permettent de spécifier les paramètres régionaux à utiliser, est celui de Windows simplement plus « complet », en raison des indicateurs de comparaison disponibles? on est par conséquent plus rapide que l'autre?
La solution
CompareString utilise les informations locales afin que des choses comme ae et æ sont traités comme des allumettes, et le tri est approprié pour la région géographique.
CompareStr ( « », loInvariantLocale) se trouve à une comparaison octet par octet des caractères d'une chaîne. CompareStr ( « », loUserLocale) appelle CompareString interne, ils sont donc identiques, autres que les drapeaux supplémentaires que CompareString peut accepter. Il est également inline, vous ne devriez pas voir une différence de vitesse entre elle et appeler CompareString directement.