Как определить вложение одной строки в другую?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 02.12.2006 (Сб) 15:40

InStr
Изображение

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Re: Как определить вложение одной строки в другую?

Сообщение BV » 02.12.2006 (Сб) 15:48

Только VB6 так не умеет:

Roman Koff писал(а):dim S01 as string = "baner"
dim S02 as string = "title;baner;content"
dim B01 as boolean = S01 ???? S02


Так умеет VB.NET.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

HandKot
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 28.06.2006 (Ср) 13:34
Откуда: Sergiev Posad

Сообщение HandKot » 04.12.2006 (Пн) 10:07

Like
I Have Nine Lives You Have One Only
THINK!

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 04.12.2006 (Пн) 10:44

Код: Выделить всё
Me.Response.Write("Test1 Test2 Test3" Like "*Test1*")

результат True
Моду создают модоки, а распространяют модозвоны.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 04.12.2006 (Пн) 10:46

Roman Koff
Для человека с 512 сообщениями незнание условия if instr(s1,s2)>0 then выглядит странно. И ещё более странно выглядит вопрос по дотнету в основном разделе.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Re: Как определить вложение одной строки в другую?

Сообщение GSerg » 04.12.2006 (Пн) 12:02

Roman Koff писал(а):Эта проверка явно будет работать быстрее, чем сравнение значений в цикле.

Если цикл не содержит exit for при нахождении первого совпадения - точно будет.

Like, Roman Koff, гораздо медленнее instr. Поискав соотв. топики на форуме, ты обнаружишь, что это одна из самых оптимальных функций языка.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 04.12.2006 (Пн) 12:07

Строковых множеств в Паскале нет и не было.

Чем автора не устроил InStr, я так и не понял :-/
Изображение

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 04.12.2006 (Пн) 17:14

И всё-таки: если автор имел в виду, что ему хочется быстро находить в массиве строк нужную строку, то в FW встроена возможность двоичного поиска по массивам. И это, по идее, быстрее цикла.
Только для того, чтобы был какой-то выигрыш, в массиве должны быть сотни строк.
Изображение


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Mail.ru [бот] и гости: 13

    TopList