2010-03-19 9 views
5

Ich bin der Hoffnung, jemand auf das für mich etwas Licht kann: Was sind die Unterschiede in Delphi 2009, zwischen den CompareStr (definiert in SysUtils) und CompareString (von Windows API) Funktionen ?Delphi - Unterschiede zwischen CompareStr und CompareString

Beides lässt Sie das zu verwendende Gebietsschema angeben, ist das Windows einfach aufgrund der verfügbaren Vergleichsflags "vollständiger"? Ist man folglich schneller als der andere?

Antwort

6

CompareString verwendet Gebietsschemainformationen, so dass Dinge wie ae und æ als Übereinstimmungen behandelt werden und die Sortierung für die geografische Region geeignet ist.

CompareStr ('', loInvariantLocale) ist nur ein Byte-zu-Byte-Vergleich der Zeichen in einer Zeichenfolge. CompareStr ('', loUserLocale) ruft CompareString intern auf, also sind sie identisch, abgesehen von den zusätzlichen Flags, die CompareString akzeptieren kann. Es ist auch inline, also sollten Sie keinen Unterschied in der Geschwindigkeit sehen und CompareString direkt aufrufen.

+0

Dank Craig, Ich war mir nicht sicher, da der Code (Assembly) für CompareStr CompareString nicht verweist - oder zumindest habe ich es nicht fangen: o) – Bourgui

Verwandte Themen