Foros del Web » Programación para mayores de 30 ;) » .NET »

[SOLUCIONADO] Reemplazar palabras en richtextbox ¡

Estas en el tema de Reemplazar palabras en richtextbox ¡ en el foro de .NET en Foros del Web. Hola compañeros de foro. (disculpas ante todo, soy nueva en el foro ) estoy trabajando una aplicación de escritorio en vb .net 2010 y necesito ...
  #1 (permalink)  
Antiguo 27/02/2013, 17:53
 
Fecha de Ingreso: febrero-2013
Mensajes: 10
Antigüedad: 11 años, 8 meses
Puntos: 0
Sonrisa Reemplazar palabras en richtextbox ¡

Hola compañeros de foro. (disculpas ante todo, soy nueva en el foro ) estoy trabajando una aplicación de escritorio en vb .net 2010 y necesito reemplazar ciertas palabras por otras palabras o datos de una tabla mysql. para luego poder imprimir todo el texto. y además que no se pueda modificar por el usuario el texto contenido en el richtextbox. he encontrado algunos ejemplos parecidos de buscar y reemplazar, en vb 6.0 pero sin resultados.
  #2 (permalink)  
Antiguo 28/02/2013, 06:55
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 10 meses
Puntos: 606
Respuesta: Reemplazar palabras en richtextbox ¡

Puedes cargar el texto de mysql al richtextbox y luego manipularlo. Para ello simplemente has de jugar con la propiedad Text.

Por ejemplo, si quieres cambiar algunas palabras, usa la función Replace sobre la propiedad Text y pasale las palabras a intercambiar :)
__________________
Aviso: No se resuelven dudas por MP!
  #3 (permalink)  
Antiguo 28/02/2013, 17:58
 
Fecha de Ingreso: febrero-2013
Mensajes: 10
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Reemplazar palabras en richtextbox ¡

Gracias por la pronta respuesta.

Estoy mirando la función replace, tengo un código que me reemplaza UNA sola palabra y lo que quiero es que al llamar los datos de la DB y mostrarlos en los Textbox me reemplace todas las palabras correspondientes al tiempo.

Este es mi código:

' buscar
Private Sub BuscarTexto(ByVal RichTextBox As Object, Optional ByVal PosIni As Integer = 0)

Dim Pos As Integer
Dim PalabraClave As String
Dim TipoBusqueda As Long

PalabraClave = txtBusca.Text

If Len(PalabraClave) Then
'Verificar si Mayusculas y Minusculas esta desactivada
If CheckBox1.Checked = 0 Then
TipoBusqueda = vbTextCompare
Else
TipoBusqueda = vbBinaryCompare
End If

'Busca desde la PosIni que se indico...
Pos = InStr(PosIni + 1, RichTextBox.Text, PalabraClave, TipoBusqueda)
If Pos > 0 Then

With RichTextBox
RichTextBox1.SelectionStart = Pos - 1
RichTextBox1.SelectionLength = Len(PalabraClave)
RichTextBox1.Focus()
End With
Me.Text = "Se encontro la palabra."
Else

RichTextBox1.Focus()
Me.Text = "No se encontro."
End If
End If

End Sub

' reemplazar el texto seleccionado

Private Sub RemplazarTexto(ByVal RichTextBox As Object, Optional ByVal PosIni As Integer = 0)


Dim Pos As Integer
Dim PalabraClave As String

'TipoBusqueda corresponde si se busca Mayus y Minus identicas...
Dim TipoBusqueda As Long

'La variable PalabraClave toma el valor de txt_Buscar
PalabraClave = txtBusca.Text

'Verificar si PalabraClave no esta vacia
If Len(PalabraClave) Then

'Verificar si Mayus y Minus esta desactivada
If CheckBox1.Checked = 0 Then
TipoBusqueda = vbTextCompare
Else
TipoBusqueda = vbBinaryCompare
End If
'Busca desde la PosIni que se indico..
Pos = InStr(PosIni + 1, RichTextBox.Text, PalabraClave, TipoBusqueda)
If Pos > 0 Then
'Si devolvio mayor de 0...se encontro
RichTextBox1.SelectionStart = Pos - 1
RichTextBox1.SelectionLength = Len(PalabraClave)
RichTextBox1.Focus()

'Eliminamos el contenido del clipboard
Clipboard.Clear()
Clipboard.SetText(txtRemplz.Text)
'Pega el contenido
SendKeys.Send("^(V)")

Me.Text = "Se encontro y reemplazo la cadena de texto."
Else
'No se encontró
RichTextBox1.Focus()
Me.Text = "No se encontro."
End If
End If

End Sub

Creo que con un While o un For se podria pero no se como va el código.
  #4 (permalink)  
Antiguo 01/03/2013, 02:26
Avatar de Malenko
Moderador
 
Fecha de Ingreso: enero-2008
Mensajes: 5.323
Antigüedad: 16 años, 10 meses
Puntos: 606
Respuesta: Reemplazar palabras en richtextbox ¡

La idea es esa misma, en un bucle recorrer la lista de palabras a modificar e ir llamando a la función Replace con cada una de ellas.
__________________
Aviso: No se resuelven dudas por MP!
  #5 (permalink)  
Antiguo 04/03/2013, 17:46
 
Fecha de Ingreso: febrero-2013
Mensajes: 10
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Reemplazar palabras en richtextbox ¡

Malenko... muchas gracias por tu ayuda, me sirvio mucho...

ahora Coloco este código (RichTextBox1.SelectionAlignment = HorizontalAlignment.Center) en el load del form para Justificar
el texto y funciona bien.

Dim Pos As Integer
Dim TipoBusqueda As Long

Dim PalabraClave(3) As String
PalabraClave(0) = txtBusca1.Text.ToString()
PalabraClave(1) = txtBusca2.Text.ToString()
PalabraClave(2) = txtBusca3.Text.ToString()

Dim Reemplaza(3) As String
Reemplaza(0) = txtRemplz1.Text.ToString()
Reemplaza(1) = txtRemplz2.Text.ToString()
Reemplaza(2) = txtRemplz3.Text.ToString()

For i As Integer = 0 To PalabraClave.Count - 1
If Len(PalabraClave(i)) Then
'Verificar si Mayusculas y Minusculas esta desactivada
If CheckBox1.Checked = 0 Then
TipoBusqueda = vbTextCompare
Else
TipoBusqueda = vbBinaryCompare
End If

Pos = InStr(PosIni + 1, RichTextBox.Text, PalabraClave(i), TipoBusqueda)

If Pos > 0 Then

With RichTextBox
RichTextBox1.SelectionStart = Pos - 3
RichTextBox1.SelectionLength = Len(PalabraClave(i))
RichTextBox1.Text = RichTextBox1.Text.Replace(PalabraClave(i), Reemplaza(i))
RichTextBox1.Focus()


End With
Me.Text = "Se encontro la palabra."

Else

RichTextBox1.Focus()
Me.Text = "No se encontro."
End If

End If

Next
RichTextBox1.SelectionAlignment = HorizontalAlignment.Center


El problema que tengo ahora es que despues que reemplaza me cambia totalmente el formato del texto dejandolo según
este la primer linea del Richtextbox. y aunque coloque la linea de texto que antes mencione ya no funciona.

Queciera Saber si alguien me puede decir como puedo conservar el formato original del Richtextbox.
  #6 (permalink)  
Antiguo 14/03/2013, 10:07
 
Fecha de Ingreso: febrero-2013
Mensajes: 10
Antigüedad: 11 años, 8 meses
Puntos: 0
De acuerdo Respuesta: Reemplazar palabras en richtextbox ¡

Ya solucione el problema.

Al utilizar la propiedad Text estaba cambiando el Formato, así que cambie la propiedad Text por Rtf y funciona perfectamente, ahora reemplaza sin cambiar el formato del texto.

Gracias a todos...

Etiquetas: richtextbox
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:01.