Страница: 1 |
Страница: 1 |
Вопрос: Rich Text Box
Добавлено: 16.01.09 16:39
Автор вопроса: Lex
Подскажите, пожалуйста как выделить текст от символа до символа ? Или лучше вывести его на Label
Пример: Вот такой "текст нужно вывести" на label или выделить. Как вывести текст который находится в кавычках ? Т.Е. от кавычки до кавычки ...
Ответы
Всего ответов: 11
Номер ответа: 1
Автор ответа:
Андрей
Вопросов: 8
Ответов: 42
Профиль | | #1
Добавлено: 16.01.09 17:41
Особо не думал, но как-то так...
Брось на форму кнопку и RichTextBox.
Private Sub Form_Load()
RichTextBox1.Text = "Вот такой 'текст нужно вывести' на label или выделить. Как вывести текст который находится в кавычках ? Т.Е. от кавычки до кавычки ..."
End Sub
Private Sub Command1_Click()
Dim lWhere, lPos As Long
Dim sTmp, sSearch As String
lPos = 1
'Здесь нужно указать символ для поиска
sSearch = "'"
'поиск по всему тексту
Do While lPos < Len(RichTextBox1.Text)
sTmp = Mid(RichTextBox1.Text, lPos, Len(Me.RichTextBox1.Text))
lWhere = InStr(sTmp, sSearch)
lPos = lPos + lWhere
n = 1
If lWhere Then 'если строка для поиска найдена
RichTextBox1.SelStart = lPos - 1 'установить начало выделения
n = 2
End If
If lWhere And n = 2 Then 'если строка для поиска найдена снова
RichTextBox1.SelLength = RichTextBox1.SelStart + lPos - 4 'установить длину выделения
RichTextBox1.SelColor = RGB(255, 0, 0) 'изменить цвет выделения красным цветом
Exit Do
End If
Loop
End Sub
Номер ответа: 2
Автор ответа:
Lex
Вопросов: 2
Ответов: 11
Профиль | | #2
Добавлено: 18.01.09 15:27
спасибо за ответ, так то всё работает, но всё же немного не то, нужно выделить текст именно между знаками " а не '
Номер ответа: 3
Автор ответа:
Андрей
Вопросов: 8
Ответов: 42
Профиль | | #3
Добавлено: 19.01.09 02:46
Что мешает?
Private Sub Form_Load()
RichTextBox1.Text = "Вот такой " & Chr(34) & "текст нужно вывести" & Chr(34) & " на label или выделить. Как вывести текст который находится в кавычках ? Т.Е. от кавычки до кавычки ..."
End Sub
Private Sub Command1_Click()
Dim lWhere, lPos As Long
Dim sTmp, sSearch As String
lPos = 1
'Здесь нужно указать символ для поиска
sSearch = Chr(34)
'поиск по всему тексту
Do While lPos < Len(RichTextBox1.Text)
sTmp = Mid(RichTextBox1.Text, lPos, Len(Me.RichTextBox1.Text))
lWhere = InStr(sTmp, sSearch)
lPos = lPos + lWhere
n = 1
If lWhere Then 'если строка для поиска найдена
RichTextBox1.SelStart = lPos - 1 'установить начало выделения
n = 2
End If
If lWhere And n = 2 Then 'если строка для поиска найдена снова
RichTextBox1.SelLength = RichTextBox1.SelStart + lPos - 4 'установить длину выделения
RichTextBox1.SelColor = RGB(255, 0, 0) 'изменить цвет выделения красным цветом
Label1.Caption = RichTextBox1.SelText
Exit Do
End If
Loop
End Sub
Номер ответа: 4
Автор ответа:
Lex
Вопросов: 2
Ответов: 11
Профиль | | #4
Добавлено: 19.01.09 16:33
Вот тут можно по подробнее ? По моему он ищет символ " и от него выделяет определённое количество знаков, причём не важно сколько ещё знаков " ему встретятся...
Может я просто не полностью описал проблему.
Допустим есть текст: Обсуждение вопросов, связанных с "ремонтом и сервисным обслуживанием" различной техники
Нужно чтобы при поиске слова ремонтом выделялся текст от этого слова и до кавычки.
Номер ответа: 5
Автор ответа:
Андрей
Вопросов: 8
Ответов: 42
Профиль | | #5
Добавлено: 19.01.09 19:44
А так?
Private Sub Form_Load()
RichTextBox1.Text = "Вот такой " & Chr(34) & "текст нужно вывести" & Chr(34) & " на label или выделить. Как вывести текст который находится в кавычках ? Т.Е. от кавычки до кавычки ..."
End Sub
Private Sub Command1_Click()
Dim lWhere, lPos As Long
Dim sTmp, sSearch As String
lPos = 1
'Здесь нужно указать символ для поиска
sSearch = Chr(34)
n = 1
'поиск по всему тексту
Do While lPos < Len(RichTextBox1.Text)
sTmp = Mid(RichTextBox1.Text, lPos, Len(Me.RichTextBox1.Text))
lWhere = InStr(sTmp, sSearch)
lPos = lPos + lWhere
If lWhere And n = 2 Then 'если строка для поиска найдена снова
RichTextBox1.SelLength = (lPos - 2) - RichTextBox1.SelStart 'установить длину выделения
RichTextBox1.SelColor = RGB(255, 0, 0) 'изменить цвет выделения красным цветом
Label1.Caption = RichTextBox1.SelText
Exit Do
End If
If lWhere Then 'если строка для поиска найдена
RichTextBox1.SelStart = lPos - 1 'установить начало выделения
n = 2
End If
Loop
Номер ответа: 6
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #6
Добавлено: 19.01.09 22:26
rt - имя текстбокса, Print печатает результат на форме
Номер ответа: 7
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #7
Добавлено: 19.01.09 22:28
походу я не то сделал) ну не важно
Номер ответа: 8
Автор ответа:
Андрей
Вопросов: 8
Ответов: 42
Профиль | | #8
Добавлено: 20.01.09 05:07
Всё то)) правильно)
Private Sub Form_Load()
RichTextBox1.Text = "Вот такой " & Chr(34) & "текст нужно вывести" & Chr(34) & " на label или выделить. Как вывести текст который находится в кавычках ? Т.Е. от кавычки до кавычки ..."
End Sub
Private Sub Command1_Click()
Dim pos As Integer, pos2 As Integer 'Позиции 1ой и 2ой кавычки,
Do
pos = InStr(pos2 + 1, RichTextBox1.Text, Chr(34)) 'Ищем 1ую
If pos > 0 Then 'Если нашли
pos2 = InStr(pos + 1, RichTextBox1.Text, Chr(34)) 'Ищем 2ую
If pos2 > 0 Then Label1.Caption = Mid$(RichTextBox1.Text, pos + 1, pos2 - pos - 1)
Else: Exit Do
End If
Loop
End Sub
Номер ответа: 9
Автор ответа:
Lex
Вопросов: 2
Ответов: 11
Профиль | | #9
Добавлено: 21.01.09 10:03
Спасибо. Всё работает
Номер ответа: 10
Автор ответа:
Lex
Вопросов: 2
Ответов: 11
Профиль | | #10
Добавлено: 22.01.09 13:17
Попутно ещё один вопрос появился
Как узнать есть ли в тексте который выводим(между кавычками) определённое слово ?
Пример: нашли в тексте кавычки, выделили и надо проверить определённое слово, если оно есть то выводим на label весь текст который в кавычках и ищем дальше по всему тексту
Номер ответа: 11
Автор ответа:
Lex
Вопросов: 2
Ответов: 11
Профиль | | #11
Добавлено: 26.01.09 12:02
Разобрался