Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Сравнение двух строк / 10 сообщений из 10, страница 1 из 1
16.08.2004, 16:53
    #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
16.08.2004, 17:33
    #32651528
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух строк
Если хочешь проверять по длинне а не содержанию тогда так:
Код: plaintext
1.
2.
If Len(m_TEXT)<>Len(GetTextFromBase(m_name)) then
.....
end if

Magnus
...
Рейтинг: 0 / 0
16.08.2004, 17:33
    #32651529
raur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух строк
ты не длину проверяешь, а значения
not len(m_TEXT)=len(...)
...
Рейтинг: 0 / 0
16.08.2004, 18:21
    #32651638
uvish
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух строк
мне нужно сравнить содержание двух строк а не длину
...
Рейтинг: 0 / 0
16.08.2004, 18:55
    #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
16.08.2004, 19:19
    #32651718
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух строк
uvishмне нужно сравнить содержание двух строк а не длину
Ок, но в заглавном посте ты уширал именно на то что длинна у них одинаковая, а это совсем не значит что содержимое идентично.
...
Рейтинг: 0 / 0
18.08.2004, 04:02
    #32653781
MrDDT
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух строк
МаксимВПопробуй так.
2. Вариант(помоему быстрее):
Код: plaintext
1.
2.
If StrComp(m_TEXT$, GetTextFromBase(m_name), vbTextCompare) <>  0  Then 
 'строки не равны  
End If


А что за StrComp и с чем его едят? :) Если можно, то чуть подробнее, пожалуйста. И почему оно быстрее первого варианта?
...
Рейтинг: 0 / 0
18.08.2004, 10:43
    #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
18.08.2004, 10:47
    #32654136
МаксимВ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух строк
Почему быстрее: где-то советах по оптимизации при операциями со строковыми переменными читал. Просто не помню где именно, по тому и предпологал: "2. Вариант(помоему быстрее)", а не утвержал.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
17.04.2006, 16:08
    #33671527
Alexiz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Сравнение двух строк
Однозначно быстрее. В моём случае (требуется сортировка по алфавиту 1,5 МБ текстового файла) выигрыш в производительности составляет порядка 45%.
Понятное дело, что на меньших объёмах и выигрыш менее заметен, но всё же алгоритм strComp явно предпочтительнее в плане скорости.
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Сравнение двух строк / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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