remplazar linea de un textbox multi linea

Iniciado por andrer03, 7 Mayo 2009, 20:27 PM

0 Miembros y 1 Visitante están viendo este tema.

EddyW

Cita de: 3D1 en  8 Mayo 2009, 11:38 AM
Copia esta funcion en Codigo General del form1:
Código (vb) [Seleccionar]
Private Function ReplaceT(OutPut As Object, Txt1 As String, Txt2 As String, Line As Long)
Dim Spli() As String
Dim Tmp As String
Dim LineTmp As String
Spli = Split(OutPut, vbNewLine)
For i = 0 To UBound(Spli)
If i = Val(Line - 1) Then
LineTmp = Spli(Line - 1)
LineTmp = Replace(LineTmp, Txt1, Txt2)
Tmp = Tmp & LineTmp & vbNewLine
Else
Tmp = Tmp & Spli(i) & vbNewLine
End If
Next i
ReplaceT = Tmp
End Function

Ese es el code que busca y reemplaza caracteres por linea lo usas asi con un command button:
Código (vb) [Seleccionar]
Private Sub Command1_Click()
Text2.Text = ReplaceT(Text1, "Esto", "Por esto", 1)
End Sub

Text2 obtendra los cambios leidos del objeto Text1, en este caso solo se pone text1 son .text "Esto" es el texto que se va ha buscar y "Por Esto" es por el que se va ha reemplazar y 1 es la linea de texto donde se va a buscar..
Espero te sirva esta funcion..
SaluDOS!!!
PD: Cualquier duda posteas..
Lo ise sin APIs y funciono a la perfeccion, para que usar modulos en un problema tal simple, intenta asi y me dices si va.... :)
SaluDOS!!!

Karcrack

Has de tener en cuenta que con el método Replace() reemplazas todas las lineas con el mismo texto que la que indicas...

Aquí esta el código mas sencillo que se me ha ocurrido...

Código (vb) [Seleccionar]
Private Sub Form_Load()
    'Reemplaza la linea numero 10 por 'LINEA REEMPLAZADA
    Text1.Text = ReplaceLine(Text1.Text, "LINEA REEMPLAZADA", 10)
End Sub

Public Function ReplaceLine(ByRef sExpression As String, ByVal sReplace As String, ByVal lLineNumber As Long) As String
    Dim sLine       As String
   
    'Si no hay suficientes lineas salimos
    If UBound(Split(sExpression, vbCrLf)) < lLineNumber Then Exit Function
    'Obtiene el texto de esa linea
    sLine = Split(sExpression, vbCrLf)(lLineNumber - 1)
    'La reemplaza (A ELLA Y A TODAS LAS QUE SEAN IGUALES)
    ReplaceLine = Replace$(sExpression, sLine, sReplace)
End Function