Функция CompareString

Declare Function CompareString Lib "kernel32" Alias "CompareStringA" (_ 
    ByVal Locale As Long, _
	ByVal dwCmpFlags As Long, _
	ByVal lpString1 As String, _
	ByVal cchCount1 As Long, _
	ByVal lpString2 As String, _
	ByVal cchCount2 As Long) As Long

CompareString сравнивает две строки, определяя строку с высшим приоритетом в алфавитном порядке.

Возвращаемое значение

В случае ошибки функция возвращает 0 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает следующие значения:

CSTR_LESS_THAN = 1
Первая строка меньше второй (т.е. выше в алфавитном порядке)
CSTR_EQUAL = 2
Первая строка равна второй (но не обязательно идентична)
CSTR_GREATER_THAN = 3
Первая строка больше второй

Параметры

Locale
Локальный идентификатор. Может принимать следующие значения
LOCALE_SYSTEM_DEFAULT = &H400
Системный
LOCALE_USER_DEFAULT = &H800
Пользовательский
dwCmpFlags
Комбинация флагов, определяющих способ сравнения (для сравнения по умолчанию используйте 0)
NORM_IGNORECASE = &H1
Игнорирование регистра
NORM_IGNOREKANATYPE = &H10000
Для японских символов. Игнорирование различий между Хирагана и Катакана
NORM_IGNORENONSPACE = &H2
Игнорирование беспробельных символов
NORM_IGNORESYMBOLS = &H4
Игнорирование символов
NORM_IGNOREWIDTH = &H20000
Игнорирование однобайтных и двубайтных символов
SORT_STRINGSORT = &H1000
Строчная сортировка вместо словесной. В этом случае все символы(такие как апостроф и т.д.) стоят выше буквы "a"
lpString1
Первая строка для сравнения
cchCount1
Длина строки lpString1 в байтах. Если равен -1, то lpString1 вычисляется автоматически по завершающему нулевому символу
lpString2
Вторая сравниваемая строка
cchCount2
Длина строки lpString2 в байтах. Если равен -1, то lpString2 вычисляется автоматически по завершающему нулевому символу

Пример

' Сравним две строчки без учета регистра
Const Str1 As String = "проект"
Const Str2 As String = "Проект"
Select Case CompareString(LOCALE_SYSTEM_DEFAULT, NORM_IGNORECASE, Str1, -1, Str2, -1)
   Case CSTR_LESS_THAN
     MsgBox "Первая строка выше второй по алфавиту"
   Case CSTR_EQUAL
     MsgBox "Строки равны без учета регистра"
   Case CSTR_GREATER_THAN
     MsgBox "Вторая строка выше первой по алфавиту"
End Select

Смотри также

lstrcmp, lstrcmpi

Категория

Строки

Реклама