StrComp vs. LCase()=LCase()

29/01/2014 - 20:13 von Ahmed Martens | Report spam
Hallo Leute,

gibt es eigentlich zwingende Gründe die für die eine o. andere
Vergleichsvariante sprechen:

1. Variante
If StrComp(sValue1, sValue, vbTextCompare) = 0 Then

2. Variante
If LCase(sValue1) = LCase(sValue) Then

Sind beide Varianten gleichwertig oder ist eine besser (?) als die
andere?

Es sollen nur zwei Werte verglichen werden ohne Groß/Kleinschreibung.

Vielen Dank im voraus.

Gruß Ahmed

Antworten bitte nur in der Newsgroup
Windows 7 64bit Home Premium
Office Prof. 2010
 

Lesen sie die antworten

#1 Wolfgang Wolf
30/01/2014 - 09:20 | Warnen spam
Am 29.01.2014 20:13, schrieb Ahmed Martens:
Hallo Leute,

gibt es eigentlich zwingende Gründe die für die eine o. andere
Vergleichsvariante sprechen:

1. Variante
If StrComp(sValue1, sValue, vbTextCompare) = 0 Then

2. Variante
If LCase(sValue1) = LCase(sValue) Then

Sind beide Varianten gleichwertig oder ist eine besser (?) als die
andere?

Es sollen nur zwei Werte verglichen werden ohne Groß/Kleinschreibung.

Vielen Dank im voraus.

Gruß Ahmed




Ich MS unterstelle, dass sie sich bei der Implementierung von StrComp
was dabei gedacht haben, also würde ich diese Funktion vorziehen.
StrComp kann auch noch ein bisschen mehr, z.B.:
Debug.Print StrComp("Masse", "Maße", vbTextCompare) '--> 0


Wenn es dir aber um absoluten Speed geht, dann könntest Du auch die API
bemühen:

Public Declare Function lstrcmpi Lib "kernel32" Alias "lstrcmpiA" (ByVal
lpString1 As String, ByVal lpString2 As String) As Long

die ist Faktor 2-3 schneller wie StrComp. Wenn das noch nicht reicht,
dann siehe http://www.xbeat.net/vbspeed/c_IsSameText.htm

Schönen Gruß
W. Wolf

Ähnliche fragen