Функция 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
Категория
Строки
Реклама