none
Substituir palavras no textbox RRS feed

  • Pergunta

  • Boas pessoal

    Tenho um textbox em modo multiline. Preciso de substituir todas as palavras "dia" nele escritas por palavras "noite". Basicamnete o que tem que fazer é localizar as palavras dia, apaga e escreve noite.

    Como fazo isso?

    Entenderam?

    encontrei este código na net..mas acho que não é bem isto que é preciso...:(

    Ta assim no MSDN:
    InStr Function Example
    
    This example uses the InStr function to return the position of the first occurrence of one string within another.
    Dim SearchString, SearchChar, MyPos
    SearchString ="XXpXXpXXPXXP" ' String to search in.
    SearchChar = "P" ' Search for "P".
    
    ' A textual comparison starting at position 4. Returns 6.
    MyPos = Instr(4, SearchString, SearchChar, 1) 
    
    ' A binary comparison starting at position 1. Returns 9.
    MyPos = Instr(1, SearchString, SearchChar, 0)
    
    ' Comparison is binary by default (last argument is omitted).
    MyPos = Instr(SearchString, SearchChar) ' Returns 9.
    
    MyPos = Instr(1, SearchString, "W") ' Returns 0.


    quarta-feira, 31 de agosto de 2011 00:08

Respostas

  • http://msdn.microsoft.com/pt-br/library/bt3szac5%28v=vs.90%29.aspx
    se a resposta foi útil, classifique :)
    ate mais,

    Rodrigo Soria
    quarta-feira, 31 de agosto de 2011 03:31
  • O método q o RSCS passou (.Replace()) serve para substituir uma string ou caracter por outro

    Ex.:

    TextBox2.Text = TextBox1.Text.Replace("dia", "noite")
    

    Nessa caso substituiria todas as letras "dia" por "noite"...

    Mas tome cuidado com o caso de conter palavras como "moradia" ou outras palavras que contenham "dia"... Ficara "moranoite"

    Então eu sugiro que você use Expressões Regulares.

    Ex.:

    TextBox2.Text = System.Text.RegularExpressions.Regex.Replace(TextBox1.Text, "\bdia\b", "noite", System.Text.RegularExpressions.RegexOptions.IgnoreCase)
    

    Veja que a palavra "dia" está entre as âncoras "\b" e tambem que está ignorando Case (maiusculas e minusculas)

     


    Att. Osni
    quarta-feira, 31 de agosto de 2011 21:06

Todas as Respostas

  • Bem pessoal pesquisei por:

     

    Localizar e substituir texto 

    e nada.

     

    Achei só isto:

     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        TextBox1.Text = "ola:"
    
        'Exemplo para substituir o dois pontos(:) por (;)
    
        Dim iPos As Integer
    
        iPos = InStr(TextBox1.Text, ":") 'Guarda a posicao do (:) 
    
        If iPos <> 0 Then
          Mid(TextBox1.Text, iPos, 3) = ";" 'Substitui o : por ;
        End If
      End Sub
    
    Mas isto não funciona num textbox multiline, pois se tiver linhas atras ou á frente ele apaga...

    quarta-feira, 31 de agosto de 2011 01:03
  • http://msdn.microsoft.com/pt-br/library/bt3szac5%28v=vs.90%29.aspx
    se a resposta foi útil, classifique :)
    ate mais,

    Rodrigo Soria
    quarta-feira, 31 de agosto de 2011 03:31
  • RSCS eu ainda sou iniciante, ja estive a ler o site que voce me mandou mas não percebei bem?

    Pode.me explicar como ponho esse codigo no meu?

     

    cumps

    quarta-feira, 31 de agosto de 2011 13:03
  • Estou pesquisnto e não consigo encontrar...aparece muita coisa mas é de substituir todas a textbox... mas nada do que pretendo.

     

    Alguem tem ideia de como fazer isto?

    quarta-feira, 31 de agosto de 2011 15:52
  • O método q o RSCS passou (.Replace()) serve para substituir uma string ou caracter por outro

    Ex.:

    TextBox2.Text = TextBox1.Text.Replace("dia", "noite")
    

    Nessa caso substituiria todas as letras "dia" por "noite"...

    Mas tome cuidado com o caso de conter palavras como "moradia" ou outras palavras que contenham "dia"... Ficara "moranoite"

    Então eu sugiro que você use Expressões Regulares.

    Ex.:

    TextBox2.Text = System.Text.RegularExpressions.Regex.Replace(TextBox1.Text, "\bdia\b", "noite", System.Text.RegularExpressions.RegexOptions.IgnoreCase)
    

    Veja que a palavra "dia" está entre as âncoras "\b" e tambem que está ignorando Case (maiusculas e minusculas)

     


    Att. Osni
    quarta-feira, 31 de agosto de 2011 21:06
  • Percebi direitinho :)

     

    Era mesmo isto. Obrigado pessoal :)

    cumps

    quinta-feira, 1 de setembro de 2011 01:13