powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Сравнение двух строк
10 сообщений из 10, страница 1 из 1
Сравнение двух строк
    #32651427
uvish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня есть переменная m_TEXT as string и усть функция GetTextFromBase(name as string) as string. На операторе
If m_TEXT<>GetTextFromBase(m_name) then
.....
end if

всегда заходит в if. Длина у них одинаковая. Что сделать чтобы правильно проверялось сравнение двух string`овых выражений?????
...
Рейтинг: 0 / 0
Сравнение двух строк
    #32651528
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если хочешь проверять по длинне а не содержанию тогда так:
Код: plaintext
1.
2.
If Len(m_TEXT)<>Len(GetTextFromBase(m_name)) then
.....
end if

Magnus
...
Рейтинг: 0 / 0
Сравнение двух строк
    #32651529
raur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ты не длину проверяешь, а значения
not len(m_TEXT)=len(...)
...
Рейтинг: 0 / 0
Сравнение двух строк
    #32651638
uvish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мне нужно сравнить содержание двух строк а не длину
...
Рейтинг: 0 / 0
Сравнение двух строк
    #32651687
МаксимВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй так.
1. Вариант:
Код: plaintext
1.
2.
If UCASE$(m_TEXT) <> UCASE$(GetTextFromBase(m_name)) then
 'строки не равны  
end if
2. Вариант(помоему быстрее):
Код: plaintext
1.
2.
If StrComp(m_TEXT$, GetTextFromBase(m_name), vbTextCompare) <>  0  Then 
 'строки не равны  
End If
...
Рейтинг: 0 / 0
Сравнение двух строк
    #32651718
Фотография Magnus23
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uvishмне нужно сравнить содержание двух строк а не длину
Ок, но в заглавном посте ты уширал именно на то что длинна у них одинаковая, а это совсем не значит что содержимое идентично.
...
Рейтинг: 0 / 0
Сравнение двух строк
    #32653781
MrDDT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МаксимВПопробуй так.
2. Вариант(помоему быстрее):
Код: plaintext
1.
2.
If StrComp(m_TEXT$, GetTextFromBase(m_name), vbTextCompare) <>  0  Then 
 'строки не равны  
End If


А что за StrComp и с чем его едят? :) Если можно, то чуть подробнее, пожалуйста. И почему оно быстрее первого варианта?
...
Рейтинг: 0 / 0
Сравнение двух строк
    #32654120
МаксимВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MSDN
StrComp Function

Returns a Variant (Integer) indicating the result of astring comparison.

Syntax

StrComp(string1, string2[, compare])

The StrComp function syntax has thesenamed arguments:

Part Description
string1 Required. Any validstring expression.
string2 Required. Any valid string expression.
compare Optional. Specifies the type of string comparison. If the compareargument isNull, an error occurs. If compare is omitted, the Option Compare setting determines the type of comparison.

Settings

The compare argument settings are:

Constant Value Description
vbUseCompareOption -1 Performs a comparison using the setting of the Option Compare statement.
vbBinaryCompare 0 Performs a binary comparison.
vbTextCompare 1 Performs a textual comparison.
vbDatabaseCompare 2 Microsoft Access only. Performs a comparison based on information in your database.

Return Values

The StrComp function has the following return values:

If StrComp returns
string1 is less than string2 -1
string1 is equal to string2 0
string1 is greater than string2 1
string1 or string2 is Null Null
...
Рейтинг: 0 / 0
Сравнение двух строк
    #32654136
МаксимВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему быстрее: где-то советах по оптимизации при операциями со строковыми переменными читал. Просто не помню где именно, по тому и предпологал: "2. Вариант(помоему быстрее)", а не утвержал.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Сравнение двух строк
    #33671527
Alexiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Однозначно быстрее. В моём случае (требуется сортировка по алфавиту 1,5 МБ текстового файла) выигрыш в производительности составляет порядка 45%.
Понятное дело, что на меньших объёмах и выигрыш менее заметен, но всё же алгоритм strComp явно предпочтительнее в плане скорости.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Сравнение двух строк
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]