none
localizar uma palavra em textbox e apagar RRS feed

  • Pergunta

  • Visual basic express 2010

    Gostaria de localizar uma palavra em textbox e apagar a palavra localizada e tudo o que tiver a frente dela.


    Exemplo:

    No Multi text box:

    Nome:Joao GomesData de nasc.:  18/05/2010

    Nome:Paulo CoelhoData de nasc.:  14/01/2007

    Nome:Leticia MantesData de nasc.:  08/09/2003

    No campo para digitar:

    Data de nasc

    Então deveria ficar assim no Multi text box:

    Nome:Joao Gomes

    Nome:Paulo Coelho

    Nome:Leticia Mantes

    Alguem poderia ajudar?

    utilizei o System.Text.RegularExpressions.Regex.Replace, mas nesse caso não serve porque ele subtitui somente a palavra pesquisada e eu preciso da substituir ou apagar a palavra pesquisada e o que tem na frente dessa palavra

    sábado, 21 de dezembro de 2013 17:26

Respostas

  • Public Class Form1
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            TxtPesquisa.Text = "Data de nasc"
            TxtTexto.Text = _
                "Nome:Joao GomesData de nasc.:  18/05/2010" + System.Environment.NewLine + _
                "Nome:Paulo CoelhoData de nasc.:  14/01/2007" + System.Environment.NewLine + _
                "Nome:Leticia MantesData de nasc.:  08/09/2003"        
        End Sub
        Private Sub ButPesquisa_Click(sender As Object, e As EventArgs) Handles ButPesquisa.Click
            Dim Linhas = TxtTexto.Text.Split(System.Environment.NewLine)
            TxtTexto.Text = String.Empty
            For Each Linha As String In Linhas
                Dim Inicio As Integer = Linha.IndexOf(TxtPesquisa.Text)
                If (Inicio <> -1) Then
                    Linha = Linha.Replace(Linha.Substring(Inicio), "")
                    TxtTexto.Text += Linha + System.Environment.NewLine
                Else
                    TxtTexto.Text += Linha + System.Environment.NewLine
                End If
            Next
        End Sub
    End Class
    Eu acredito que isso resolva, eu teste eu funcionou certinho!!!


    Fulvio Cezar Canducci Dias

    • Marcado como Resposta gelson_ventura quarta-feira, 1 de janeiro de 2014 00:42
    domingo, 22 de dezembro de 2013 01:32
  • Então ao escrever 

    Dim Linhas = TxtTexto.Text.Split(System.Environment.NewLine)

    Troque por

    Dim Linhas = TxtTexto.Line()

    Finalizando:

    Private Sub ButPesquisa_Click(sender As Object, e As EventArgs) Handles ButPesquisa.Click
    	Dim Linhas = RTxtTexto.Lines()
    	RTxtTexto.Text = String.Empty
    	For Each Linha As String In Linhas
    		Dim Inicio As Integer = Linha.IndexOf(TxtPesquisa.Text)
    		If (Inicio <> -1) Then
    			Linha = Linha.Replace(Linha.Substring(Inicio), "")
    			RTxtTexto.Text += Linha + System.Environment.NewLine
    		Else
    			RTxtTexto.Text += Linha + System.Environment.NewLine
    		End If
    	Next
    End Sub


    Fulvio Cezar Canducci Dias

    • Marcado como Resposta Giovani Cr quinta-feira, 26 de dezembro de 2013 10:02
    domingo, 22 de dezembro de 2013 22:58
  • Feche esse post e abre outra dúvida, credite de maneira correta as pessoas e os amigos que lhe ajudam e dê oportunidade aos demais a fazer isso ... OK!


    Fulvio Cezar Canducci Dias

    • Marcado como Resposta Giovani Cr quinta-feira, 26 de dezembro de 2013 10:02
    segunda-feira, 23 de dezembro de 2013 11:27

Todas as Respostas

  • Public Class Form1
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            TxtPesquisa.Text = "Data de nasc"
            TxtTexto.Text = _
                "Nome:Joao GomesData de nasc.:  18/05/2010" + System.Environment.NewLine + _
                "Nome:Paulo CoelhoData de nasc.:  14/01/2007" + System.Environment.NewLine + _
                "Nome:Leticia MantesData de nasc.:  08/09/2003"        
        End Sub
        Private Sub ButPesquisa_Click(sender As Object, e As EventArgs) Handles ButPesquisa.Click
            Dim Linhas = TxtTexto.Text.Split(System.Environment.NewLine)
            TxtTexto.Text = String.Empty
            For Each Linha As String In Linhas
                Dim Inicio As Integer = Linha.IndexOf(TxtPesquisa.Text)
                If (Inicio <> -1) Then
                    Linha = Linha.Replace(Linha.Substring(Inicio), "")
                    TxtTexto.Text += Linha + System.Environment.NewLine
                Else
                    TxtTexto.Text += Linha + System.Environment.NewLine
                End If
            Next
        End Sub
    End Class
    Eu acredito que isso resolva, eu teste eu funcionou certinho!!!


    Fulvio Cezar Canducci Dias

    • Marcado como Resposta gelson_ventura quarta-feira, 1 de janeiro de 2014 00:42
    domingo, 22 de dezembro de 2013 01:32
  • Ola Fúlvio Cezar,

    Peço desculpas, errei em um detalhe. A quantidade de caracteres é extremamente grande logo, preciso usar um RichTextBox.

    Mas quando tentei usar o seu exemplo não consegui porque no RichTextBox ele apaga tudo (até as linhas de baixo)

    Eis o código

    Imports Excel = Microsoft.Office.Interop.Excel
    Public Class Form1
    
        '1° PROBLEMA
        ' Separa Data de nascimento do nome referente a consulta a menor
    
        '2° PROBLEMA
        'NÃO PODE CONTER VALORES NULOS DA PLANILHA (fazer via código)
    
        '3° PROBLEMA
        'Colocar um file para o usuário escolher a planilha que deseja importar
    
        '4° PROBLEMA
        'COLOCAR NO DATAGRID OS RESULTADOS
    
        '5° PROBLEMA
        'converter para txt
        Private Sub btnListBox_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnListBox.Click
            Dim objXLApp As Excel.Application
            Dim intLoopCounter As Integer
            Dim objXLWb As Excel.Workbook
            Dim objXLWs As Excel.Worksheet
            Dim objRange As Excel.Range
    
            objXLApp = New Excel.Application
            objXLApp.Workbooks.Open("c:\Planilha.xls")
            objXLWb = objXLApp.Workbooks(1)
            objXLWs = objXLWb.Worksheets(1)
            For intLoopCounter = 2 To CInt(objXLWs.Cells.SpecialCells(Excel.XlCellType.xlCellTypeLastCell).Row) - 1
    
                '"A" é a coluna da planilha
                objRange = objXLWs.Range("AV" & intLoopCounter)
                'ListBox1.Items.Add(objRange.Value)
                RichTextBox1.Text = RichTextBox1.Text + objRange.Value + System.Environment.NewLine
            Next intLoopCounter
    
            objXLApp.Quit()
    
            apagarData()
        End Sub
    
    
    
        Private Sub apagarData()
    
    
            Dim Linhas = RichTextBox1.Text.Split(System.Environment.NewLine)
            RichTextBox2.Text = String.Empty
            For Each Linha As String In Linhas
                Dim Inicio As Integer = Linha.IndexOf(TextBox1.Text)
                If (Inicio <> -1) Then
                    Linha = Linha.Replace(Linha.Substring(Inicio), "")
                    RichTextBox2.Text += Linha + System.Environment.NewLine
                Else
                    RichTextBox2.Text += Linha + System.Environment.NewLine
                End If
            Next
    
    
        End Sub
    
       
    End Class
    

    • Marcado como Resposta gelson_ventura quarta-feira, 1 de janeiro de 2014 00:41
    • Não Marcado como Resposta gelson_ventura quarta-feira, 1 de janeiro de 2014 00:42
    domingo, 22 de dezembro de 2013 17:36
  • Observação:

    No exemplo do text box funcionou perfeitamente

    domingo, 22 de dezembro de 2013 17:37
  • Então ao escrever 

    Dim Linhas = TxtTexto.Text.Split(System.Environment.NewLine)

    Troque por

    Dim Linhas = TxtTexto.Line()

    Finalizando:

    Private Sub ButPesquisa_Click(sender As Object, e As EventArgs) Handles ButPesquisa.Click
    	Dim Linhas = RTxtTexto.Lines()
    	RTxtTexto.Text = String.Empty
    	For Each Linha As String In Linhas
    		Dim Inicio As Integer = Linha.IndexOf(TxtPesquisa.Text)
    		If (Inicio <> -1) Then
    			Linha = Linha.Replace(Linha.Substring(Inicio), "")
    			RTxtTexto.Text += Linha + System.Environment.NewLine
    		Else
    			RTxtTexto.Text += Linha + System.Environment.NewLine
    		End If
    	Next
    End Sub


    Fulvio Cezar Canducci Dias

    • Marcado como Resposta Giovani Cr quinta-feira, 26 de dezembro de 2013 10:02
    domingo, 22 de dezembro de 2013 22:58
  • Fúlvio muito obrigado pela ajuda conseguir resolver.

    Tenho uma outra situação semelhante, a única diferença é que eu preciso retirar os dados Data de nasc.:  dd/mm/aaaa e colocar em outra textbox.

    Textbox 

    Nome:Joao GomesData de nasc.:  18/05/2010

    Nome:Paulo CoelhoData de nasc.:  14/01/2007

    Nome:Leticia MantesData de nasc.:  08/09/2003

    Textbox de data de nascimento

    Data de nasc.:  18/05/2010

    Data de nasc.:  14/01/2007

    Data de nasc.:  08/09/2003

    Poderia da essa última força

    segunda-feira, 23 de dezembro de 2013 02:56
  • Feche esse post e abre outra dúvida, credite de maneira correta as pessoas e os amigos que lhe ajudam e dê oportunidade aos demais a fazer isso ... OK!


    Fulvio Cezar Canducci Dias

    • Marcado como Resposta Giovani Cr quinta-feira, 26 de dezembro de 2013 10:02
    segunda-feira, 23 de dezembro de 2013 11:27
  • Sem problemas
    segunda-feira, 23 de dezembro de 2013 20:09