Visual Basic - Buscar texto entre dos constantes

Life is soft - evento anual de software empresarial
 
Vista:

Buscar texto entre dos constantes

Publicado por dPix (5 intervenciones) el 03/09/2006 02:09:06
Hola a todos, bien, mi problema es que tengo un texto muy grande y necesito coger SOLO las URLS las cadenas que estén dentro de "<font color=#008000>" (al principio de la cadena) y "</font><nobr>" (al final de la cadena). He intentado con :
*****************************
Dim primercaracter As Integer
Dim segundocaracter As Integer
primercaracter = InStr(primercaracter + 1, Text1.Text, "<font color=#008000>")
segundocaracter = InStr(primeracaracter + 1, Text1.Text, "</font><nobr>")
Text2.Text = Mid(Text1.Text, primercaracter + 20)
******************************
Pero solo me recorta el principio, después tendré que hacer un bucle pero cuando consiga la duda que os he planteado. Muchas gracias.

Salu2,

dPix
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Buscar texto entre dos constantes

Publicado por Jasall (60 intervenciones) el 03/09/2006 09:31:29
Buenas, te paso el codigo ,
'
Private Sub Command1_Click() ' Buscar
Dim Ini As Integer
Dim Fin As Integer
Dim inicial As Integer

Ini = InStr(1, Text1.Text, "<font color=#008000>") + 22
Fin = InStr(Ini + 1, Text1.Text, "</font><nobr>")
inicial = Ini
If Ini = 0 Or Fin = 0 Then Exit Sub
Do While inicial <= Ini
List1.AddItem Mid(Text1.Text, Ini, Fin - Ini) ' añado al listbox

Ini = InStr(Fin + 1, Text1.Text, "<font color=#008000>") + 22
Fin = InStr(Ini + 1, Text1.Text, "</font><nobr>")

Loop
End Sub
'
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Arreglado + pregunta

Publicado por dPix (5 intervenciones) el 03/09/2006 12:33:44
Hola de nuevo, he conseguido arreglar el codigo lo que ocurria es que pusistes el if antes y no después del do, weno ahora el problema esta en que alguna busquedas tienen dentro de "<font color=#008000>" y ""</font><nobr>" , pueden tener "<b>" y "<b>", como puedo hacer para quitar solo esas cadenas?? Muchisimas gracias de antemano.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Arreglado + pregunta

Publicado por Jasall (60 intervenciones) el 03/09/2006 21:17:25
Buenas, pues creas una rutina y le pasas como parametros las cadenas de inicio y fin.

'rutina para buscar dentro del Text1 y mostrarlo en List1
Sub Busca(strIni As String, strFin As String) ' le pasamos los parametros
Dim Ini As Integer
Dim Fin As Integer
Dim inicial As Integer

Ini = InStr(1, Text1.Text, strIni) + Len(strIni)
Fin = InStr(Ini + 1, Text1.Text, strFin)
inicial = Ini
If Ini = 0 Or Fin = 0 Then Exit Sub ' si inicialmente da 0 sale de la rutina
Do While inicial <= Ini
List1.AddItem Mid(Text1.Text, Ini, Fin - Ini) ' añado al listbox

Ini = InStr(Fin + 1, Text1.Text, strIni) + Len(strIni)
Fin = InStr(Ini + 1, Text1.Text, strFin)

Loop
End Sub

' y en la llamada le pasas los parametros a filtrar
Private Sub Command1_Click() ' Buscar
Busca "<font color=#008000>", "</font><nobr>"
Busca "<b>", "<b>"
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar