Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
 Аватар для VIsuaL_DG
0 / 0 / 0
Регистрация: 01.01.2013
Сообщений: 26

Выделение всей строки в TextBox

11.02.2014, 16:54. Показов 3065. Ответов 44
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!

Нужна ваша помощь по Visual Basic 6

В форме имеется textbox1 и textbox2. Второй не виден и содержит по строчно текст.Например:

1- "Первый блаблаблаб"
2- "Второй -плаплаплапла"
3- "Третий-флафлафлафла"

Вопрос:

Как можно сделать так, чтобы когда юзер вводит в TextBox1 слово "Первый" то выделялась вся строка с этим словом?

Например:

В TextBox1 ввожу "Второй" и мне в label1.Сaption выводится "Второй -плаплаплапла"
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.02.2014, 16:54
Ответы с готовыми решениями:

Реализовать выделение всей строки MSFlexGrid
Здравствуйте! Может кто нибудь подскажет как в MSFlexGrid сделать так, что бы строка выделялась...

Выделение всей строки по условию
Доброго времени суток. Может кто-нибудь написать макрос для заливки целой строки по условию? ...

Выделение всей активной строки со значениями до последнего активного значения в таблице
Здравствуйте, прошу помощи Есть таблица, со значениями, где мне нужно выделить всю активную строку...

44
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
11.02.2014, 20:24
Студворк — интернет-сервис помощи студентам
я мог бы ещё привести доводы но это уведет от темы

Добавлено через 2 минуты
Цитата Сообщение от gaw Посмотреть сообщение
косить (косой)
я уже упомянул ранее что нужно обрабатывать слово-сочетания

Добавлено через 1 минуту
вобщих чертах это процесс ветвления

Добавлено через 9 минут
другими словами список может рассматриваться как динамический массив со вложенным списком
где эти словосочетания и будут как-бы вложенными списками

Добавлено через 5 минут
а основные методы сортировки и поиска можно так-же проводить
на любой глубине списка
и получать результаты, либо перестраивать по правилам "уникальности"
вобщем весь этот разговор очень широкий, и нет смысла его рассматривать здесь
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
11.02.2014, 20:29
не хочу Вас обидеть, но все это я слышал, читал
и вероятности и таблицу частот (правда в контексте шифрования)
и списки и ветвления

предлягаю:
если у Вас есть конкретный код для решения этой задачи,
в котором я бы увидел скорость (уже даже не за счет упорядоченного списка),
то выложите пжл., с огромным интересом изучу.
в противном случае замнем для ясности.
и спасибо за общение
0
Модератор
10065 / 3910 / 885
Регистрация: 22.02.2013
Сообщений: 5,860
Записей в блоге: 79
11.02.2014, 21:41
если я правильно понял, то FelixMacintosh говорит правильно - использовать комбобокс и делай FindString, у тебя автоматически будет выбираться нужный пункт и ты через свойство ItemData сможешь сослаться на нужный массив. Проект с примером прилагаю
Вложения
Тип файла: rar Комбо.rar (1.5 Кб, 6 просмотров)
1
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
11.02.2014, 21:50
Dat(0) = "Первый вав"
Dat(1) = "Второй блаблаблаб"
Dat(2) = "Первый блаблаблаб"
ищем "Первый блаблаблаб"

и второй момент моего видения условия задачи (приводил выше)
в списке
косить (косой)
косить (глазами)

ищем слово косить
0
Модератор
10065 / 3910 / 885
Регистрация: 22.02.2013
Сообщений: 5,860
Записей в блоге: 79
11.02.2014, 21:56
Цитата Сообщение от gaw Посмотреть сообщение
Dat(0) = "Первый вав"
Dat(1) = "Второй блаблаблаб"
Dat(2) = "Первый блаблаблаб"
ищем "Первый блаблаблаб"
Цитата Сообщение от VIsuaL_DG Посмотреть сообщение
Как можно сделать так, чтобы когда юзер вводит в TextBox1 слово "Первый" то выделялась вся строка с этим словом?
Что не так?
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
11.02.2014, 22:01
я хотел бы рассматривать случай, когда таких строк не одна, в данном случае их 2
Dat(0) = "Первый вав"
Dat(1) = "Второй блаблаблаб"
Dat(2) = "Первый блаблаблаб"

Добавлено через 1 минуту
случай 1 к 1 как бы сам по себе неинтересен
0
Модератор
10065 / 3910 / 885
Регистрация: 22.02.2013
Сообщений: 5,860
Записей в блоге: 79
11.02.2014, 22:03
Если нужно последнее совпадение искать, то нужно просто использовать поиск в цикле, пока не будет значения CB_ERR. Для быстрого поиска, нужно строить дерево, где каждая буква - это цепочка дерева - это многократно ускоряет поиск.
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
11.02.2014, 22:08
я мб, тоже неправильно понял
"Первый вав" --- тут я прочитал как любая строка, не объязательно содержащая "Первый"
тогда в случае
Dat(0) = "Первый блаблаблаб"
Dat(1) = "Второй блаблаблаб"
Dat(2) = "Первый"
нам не найти Dat(2) = "Первый"

Добавлено через 2 минуты
Цитата Сообщение от The trick Посмотреть сообщение
нужно строить дерево
это совершенно понятно
вопрос собственно был в чем с моей стороны, (в рамках задачи)
1 почему объязательно комбобокс
2 показать код, где реализовано, например, дерево
0
Модератор
10065 / 3910 / 885
Регистрация: 22.02.2013
Сообщений: 5,860
Записей в блоге: 79
11.02.2014, 22:09
gaw, я тоже не очень понимаю что ты хочешь. Если ты хочешь найти Dat(2), как в последнем примере, просто отсортировать записи и все? Объясни конкретней. Я просто в тему не вникал особо, все что ТС написал я сделал.
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
11.02.2014, 22:09
а если точнее, то пример, где за счет упорядоченного списка получается лучшее время по отношению к неупорядоченному (этому же) списку
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
11.02.2014, 22:10
я выложил код, как я вижу решение задачи

после сортировки найдем дат(2) но не найдем дат(0) ,
0
Модератор
10065 / 3910 / 885
Регистрация: 22.02.2013
Сообщений: 5,860
Записей в блоге: 79
11.02.2014, 22:15
Цитата Сообщение от gaw Посмотреть сообщение
после сортировки найдем дат(2) но не найдем дат(0)
Я это и написал, а как надо? Если надо все найти, то вызывать SendMessage в цикле, это я тоже писал.
а если точнее, то пример, где за счет упорядоченного списка получается лучшее время по отношению к неупорядоченному (этому же) списку
В упорядоченном списке поиск быстрей безусловно, кто спорит?
0
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
11.02.2014, 22:18
если 1000 слов разбить на 2-чный логарифм (бинарный поиск тоесть) это около 10 шагов и слово найденно, вопросы по скорости есть ещё ?
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
11.02.2014, 22:25
так спору то нет, я попросил показать конкретный код вместо объяснения и без того понятных вещей. вот и все.
если я Вам скажу, что для шифрования можно использовать таблицу частот (мне объясняли выше) - это для Вас совершенно не ново, если я покажу оригинальный код по этому вопросу, - это намного полезней

и еще раз попытаюсь , в Вашем примере отображается только одна (в цикле или без) найденная строка
просто в комбо как бы и по другому нельзя

в своем примере я показываю все найденные по совпадению уже введенных символов (в их порядке следования)
0
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
11.02.2014, 22:25
...
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
11.02.2014, 22:29
Цитата Сообщение от FelixMacintosh Посмотреть сообщение
если 1000 слов разбить на 2-чный логарифм
а вот это уже ново, как это слова разбить на лог2а
0
Модератор
10065 / 3910 / 885
Регистрация: 22.02.2013
Сообщений: 5,860
Записей в блоге: 79
11.02.2014, 23:03
Цитата Сообщение от gaw Посмотреть сообщение
если я Вам скажу
Давай на "ты"
Цитата Сообщение от gaw Посмотреть сообщение
и еще раз попытаюсь , в Вашем примере отображается только одна (в цикле или без) найденная строка просто в комбо как бы и по другому нельзя
Изначально у ТС написано найти строку в которой находится слово, это я и реализовал, так что тут все бьется.
Насчет твоего примера (вроде бы тебя понял), можно сделать еще проще (как я и писал циклами), без массивов вообще.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
Option Explicit
 
Private Const CB_FINDSTRING = &H14C
Private Const CB_SHOWDROPDOWN = &H14F
Private Const LB_FINDSTRING = &H18F
Private Const CB_ERR = (-1)
 
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
 
Private Sub mCombo_KeyPress(KeyAscii As Integer)
 
    Dim CB As Long, b As Long
    Dim FindString As String
    
    If KeyAscii < 32 Then Exit Sub
    
    If mCombo.SelLength = 0 Then
        FindString = mCombo.Text & Chr$(KeyAscii)
    Else
        FindString = Left$(mCombo.Text, mCombo.SelStart) & Chr$(KeyAscii)
    End If
 
    CB = SendMessage(mCombo.hwnd, CB_FINDSTRING, -1, ByVal FindString)
    lblTest.Caption = vbNullString
    
    If CB <> CB_ERR Then
        Do Until (CB <= b) And b
            lblTest.Caption = lblTest.Caption & mCombo.List(CB) & vbNewLine
            b = CB
            CB = SendMessage(mCombo.hwnd, CB_FINDSTRING, b + 1, ByVal FindString)
            DoEvents
        Loop
        mCombo.ListIndex = CB
        mCombo.SelStart = Len(FindString)
        mCombo.SelLength = Len(mCombo.Text) - mCombo.SelStart
    Else
        mCombo.Text = FindString
        mCombo.SelStart = Len(FindString)
    End If
   
    KeyAscii = 0
    
End Sub
Вложения
Тип файла: rar Комбо.rar (1.6 Кб, 5 просмотров)
1
 Аватар для Антихакер32
1201 / 473 / 46
Регистрация: 06.01.2014
Сообщений: 1,797
Записей в блоге: 19
11.02.2014, 23:19
Цитата Сообщение от gaw Посмотреть сообщение
а вот это уже ново, как это слова разбить на лог2а
что нового? 1024 = 2 ^ 10

Log2 = Fix(Log(Num - 1) / Log(2) + 1)

Добавлено через 5 минут
Log2 Число шагов поиска (быстрым методом)
Num Количество слов в списке
0
6644 / 1511 / 169
Регистрация: 09.01.2010
Сообщений: 4,298
11.02.2014, 23:24
вот да, именно так (алгоритм в принципе такой же), спасибо, это гораздо полезнее для меня, чем
читать вики-цитаты
остается покрутить в таймере
(мне кажется, могу ошибаться, что вывод в метку не быстрее чем в листбокс)

Добавлено через 2 минуты
новое, ув.FelixMacintosh, в том , что Ваш
Цитата Сообщение от FelixMacintosh Посмотреть сообщение
на 2-чный логарифм
до недавненго времени назывался десятичным
0
Модератор
10065 / 3910 / 885
Регистрация: 22.02.2013
Сообщений: 5,860
Записей в блоге: 79
11.02.2014, 23:24
Цитата Сообщение от gaw Посмотреть сообщение
(мне кажется, могу ошибаться, что вывод в метку не быстрее чем в листбокс)
По умолчанию у лейбла стоит свойство UseMnemonic = True, если его отключить, то будет вывод быстрее, также оключить всякие AutoSize и WordBreak, а по сути это обычный DrawText, так что его можно вызывать - это будет быстрее всего, либо Print просто на форме или PictureBox'e
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.02.2014, 23:24

Получение цифр из конца строки в VBA. Получение всей строки без цифр в конце
Здесь нашла первое (уже сделанное) выдает число в конце строки до первой буквы. Хотелось бы узнать...

Что за строчка кода будет означать выделение теста или выделение абзаца в котором находится курсор?
Что за строчка кода будет означать выделение теста или выделение абзаца в котором находится курсор

Выделение несмежных столбцов через равные промежутки, выделение столбцов с числами. И их форматирование (ширина и проч)
Добрый день, форумчане! Прошу вашей помощи: Сейчас с помощью макроса привожу в надлежащий вид...

Как создать список с данными из 2-го столбца таблицы для вставки всей строки в другую таблицу
на одной странице есть таблица с несколькими колонками, необходимо создать раскрывающийся список с...

Удаление строки с определенным порядковым номером по всей книге excel
Уважаемые программисты, помогите пожалуйста! Как удалить строку с определенным порядковым номером...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru