Не знаю как это сделать...

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
NiGHt-LEshiY
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 13.11.2007 (Вт) 19:58

Не знаю как это сделать...

Сообщение NiGHt-LEshiY » 13.11.2007 (Вт) 20:03

Нужно реализовать одну вещь. В общем недавно начал изучать Visual Basic и работал с текстом, но столкнулся с одной проблемой.
Мне нужно сделать в приложении поиск, и в случае одного или другого выбора, выводятся разные сообщения. Я не знаю как это сделать, я могу только использовать ТОЧНЫЙ поиск. Пример: Я ищу: 10. А если в базе есть варианты 10 1, и 10 2 - они не рассматриваются потму что НЕ РАВНЫ с 10. Мне нужен поиск по ключевым словам в приложении. Пример - я ищу: 10, приложение выдаёт: 10 1, 10 2, 10 а...Подскажите!

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 13.11.2007 (Вт) 20:31

А регулярные выражения (RegExp) разве отменили?
Тебе по всей видимости надо ? и *
Подпись проходит рефакторинг

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 13.11.2007 (Вт) 20:41

О поиске чего среди чего идёт речь?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Сообщение burik » 13.11.2007 (Вт) 21:19

Есть оператор Like. С его помощью это как раз и можно сделать.
Код: Выделить всё

If "a10b" Like "*10*" Then ...
If "5106" Like "*10*" Then ...


Подробнее смотри тут
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

Cytron
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 266
Зарегистрирован: 15.02.2007 (Чт) 21:09

Сообщение Cytron » 13.11.2007 (Вт) 21:21

Ему не Like а InStr нужен

NiGHt-LEshiY
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 13.11.2007 (Вт) 19:58

Сообщение NiGHt-LEshiY » 13.11.2007 (Вт) 21:59

я с бейсиком почти не знаком. подскажите как именно это реализовать.
мне нУжно что то наподобии чат-бота. я ищу фразу, а прога отвечает на нее найдя ответ на нее в коде программы

t116
Бывалый
Бывалый
 
Сообщения: 209
Зарегистрирован: 12.01.2007 (Пт) 12:11

Сообщение t116 » 13.11.2007 (Вт) 22:38

NiGHt-LEshiY писал(а):я с бейсиком почти не знаком. подскажите как именно это реализовать.
мне нУжно что то наподобии чат-бота. я ищу фразу, а прога отвечает на нее найдя ответ на нее в коде программы


Код: Выделить всё
Dim X As String, Y As String
X="10 12345": Y="10"

If Instr(X, Y) Then

   Msgbox "В переменной X присутствует Y"

Else

   Msgbox "В переменной X отсутствует Y"

End If

gjghjc
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 659
Зарегистрирован: 13.10.2002 (Вс) 8:28
Откуда: БАЛАКЛАВА!!

Сообщение gjghjc » 14.11.2007 (Ср) 10:15

NiGHt-LEshiY
Вот тебе еще одна ссылочка. http://vbnet.ru/vbguide/ Это к твоему
я с бейсиком почти не знаком.
Может ты о ней и знаешь, а может быть и нет :)
Утро добрым не бывает!

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Сообщение burik » 14.11.2007 (Ср) 12:57

...А если в базе есть варианты 10 1...

Исходя из этих слов мне кажется что есть какая-то база, в которой нужно что-то найти. Если я правильно все понял и выборка записей из базы производится с помощью SQL запроса, то Like самое подходящее решение.
Код: Выделить всё
SELECT * FROM table_name WHERE field_name LIKE '*10*'
Последний раз редактировалось burik 14.11.2007 (Ср) 15:26, всего редактировалось 1 раз.
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

gjghjc
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 659
Зарегистрирован: 13.10.2002 (Вс) 8:28
Откуда: БАЛАКЛАВА!!

Сообщение gjghjc » 14.11.2007 (Ср) 14:27

burik
А разве не LIKE '*10*' или LIKE '%10%' (а то ведь какая база используется неизвестно)
Утро добрым не бывает!

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Сообщение burik » 14.11.2007 (Ср) 15:27

gjghjc, да, точно.. Просто торопился.. :)
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

NiGHt-LEshiY
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 13.11.2007 (Вт) 19:58

Сообщение NiGHt-LEshiY » 14.11.2007 (Ср) 19:49

Это не mysql, база находится в отдельном файле. А насчет того что вы написали - походит, но не очень...

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Сообщение burik » 14.11.2007 (Ср) 21:43

Ну тогда объясни подробнее что надо: что за база, каким образом ищешь в ней записи?
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман

NiGHt-LEshiY
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 13.11.2007 (Вт) 19:58

Сообщение NiGHt-LEshiY » 15.11.2007 (Чт) 19:18

База текстовый файл, предположим base.txt
Юзер пишет в текстовое поле ном1 что-либо, прога сравнивает это с тем что есть в базе и в соответствии выдает ответ в текстбокс ном2.
Пример base.txt:(точно не знаю как именно надо там писать)
"001" - "002"
И если юзер пишет в текстбокс 1 "001", то прога находит строку, которая начинается с "001" и рядом ищет ответ юзеру, то бишь "002".

Что то вроде этого! :)

burik
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 514
Зарегистрирован: 03.11.2005 (Чт) 22:04
Откуда: Беларусь, Рогачев

Сообщение burik » 16.11.2007 (Пт) 13:08

Ну тогда, например, так:
Код: Выделить всё

Function FindAnswer(ByVal Question As String) As String
Dim tmp As String, f as Integer
    f = freefile
    open "base.txt" for input as f
    while not eof(f)
        line input #f, tmp
        if instr("001",split(tmp,"-")(0)) then goto fin
    wend
    Exit Function
fin:
    FindAnswer = split(tmp,"-")(1)
End Function
Между слухов, сказок, мифов,
просто лжи, легенд сомнений
мы враждуем жарче скифов
за несходство заблуждений
Игорь Губерман


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

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

Сейчас этот форум просматривают: Google-бот и гости: 87

    TopList