Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 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
RichTextBox1.SelLength = RichTextBox1.SelStart + lPos - 4 'установить длину выделения


Вот тут можно по подробнее ? По моему он ищет символ " и от него выделяет определённое количество знаков, причём не важно сколько ещё знаков " ему встретятся...

Может я просто не полностью описал проблему.

Допустим есть текст: Обсуждение вопросов, связанных с "ремонтом и сервисным обслуживанием" различной техники
Нужно чтобы при поиске слова ремонтом выделялся текст от этого слова и до кавычки.

Ответить

Номер ответа: 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-сайт: winandfx.narod.ru
 Профиль | | #6
Добавлено: 19.01.09 22:26
rt - имя текстбокса, Print печатает результат на форме
  1. Dim pos As Integer, pos2 As Integer 'Позиции 1ой и 2ой кавычки,
  2. Do
  3.     pos = InStr(pos2 + 1, rt.Text, """")        'Ищем 1ую
  4.     If pos > 0 Then                             'Если нашли
  5.         pos2 = InStr(pos + 1, rt.Text, """")    'Ищем 2ую
  6.         If pos2 > 0 Then Print Mid$(rt.Text, pos + 1, pos2 - pos - 1) _
  7.         Else Exit Do                'Если нашли 2ую выводим текст между ними
  8.     Else
  9.         Exit Do
  10.     End If
  11. Loop

Ответить

Номер ответа: 7
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #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
Разобрался

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам