Hola a todos:
Tengo una aplicacion que busta una cadena de texto y la remplaza por otra,yo lo que quiero es que en el texto si hay varias cadenas repetidas solo remplace la primera cadena que encuentre.
Espero haberme explicado bien gracias
Utiliza replace :P
me remplaza todas las cadenas iguales cuando encuentra 5102 me lo remplaza pero yo solo quiero que me remplace ese no todos los 5102 que encuentre quiero que se pare cuando remplace el primero este es mi codigo:
Private Sub cmdReplace_Click()
If txtReplace.Text = "" Then
MsgBox "Please enter a replace string.", vbExclamation, "Find and Replace"
ElseIf txtFind = "" Then
MsgBox "Please enter a search string.", vbExclamation, "Find and Replace"
Else
rtfText.Text = FastReplace(rtfText.Text, txtFind.Text, txtReplace.Text)
End If
End Sub
Modulo
Public Function FastReplace(SSrch$, SFind$, SRepl$) As String
Dim Src() As Byte, Dst() As Byte, R() As Byte, F() As Byte
Dim LenF&, LenR&, LenDst&, i&, j&, OutPos&
Const ChunkSize& = 4096
If SSrch = "" Or SFind = "" Then Exit Function
Src = SSrch: F = SFind: R = SRepl
LenF = UBound(F): LenR = UBound(R)
LenDst = ChunkSize: ReDim Dst(0 To LenDst - 1)
For i = 0 To UBound(Src) Step 2
For j = 0 To LenF Step 2
If Src(i + j) <> F(j) Then Exit For
Next j
If j > LenF Then 'Found
For j = 0 To LenR Step 2
If OutPos >= LenDst Then
LenDst = LenDst + ChunkSize
ReDim Preserve Dst(0 To LenDst)
End If
Dst(OutPos) = R(j): OutPos = OutPos + 2
Next j
i = i + LenF - 1
Else
If OutPos >= LenDst Then
LenDst = LenDst + ChunkSize
ReDim Preserve Dst(0 To LenDst)
End If
Dst(OutPos) = Src(i): OutPos = OutPos + 2
End If
Next i
ReDim Preserve Dst(0 To OutPos - 2): SSrch = Dst
FastReplace = SSrch$
End Function
gracias
Private Sub Command1_Click()
Text2.Text = Replace(Text1.Text, "hola", "", , 1)
End Sub
El text1 contiene= "hola hola como como"
Y como veras al final de replace hay un 1 que quiere decir que remplazara el primero que encuentre...
PD: ¿Ves todo el code que tienes? :xD :xD
ok,gracias