Autor
|
Tema: Encontrar texto (Leído 2,942 veces)
|
dPix
Desconectado
Mensajes: 222
¬_¬ - ¬O.o
|
Hola wenas, a ver, tengo que buscar una cadena (una dirección web) dentro de un código de fuente (text1) y la tengo que encontrar sabiendo que antes de ella esta el texto "<font color=#008000>" y después de ella está "</font><nobr>", ¿cómo puedo coger solo la página web? Lo he intentado así: Private Sub Command1_Click() Dim primercaracter As Integer Dim segundocaracter As Integer Dim cadena As String primercaracter = InStr(primercaracter + 1, Text1.Text, "<font color=#008000>") segundocaracter = InStr(primeracaracter + 1, Text1.Text, "</font><nobr>") - primercaracter - 20 Text2.Text = Mid(Text1.Text, primercaracter + 20, primercaracter) End Sub Pero nada. Espero haberme explicado más, espero también vuestras respuestas. Gracias de antemano. dPix
|
|
|
En línea
|
|
|
|
Hendrix
|
No te dare todo el codigo porke es de mala educación ( ) pero si te dare las bases apra que empieces. Te dare este texto que escribi en otro foro para buscar palabras en el texto. Esto sirve para buskar una determinada palabra en una frase o texto y lo elimina: Dim a As String
a = "Hendrixholapunker"
For i = 1 To Len(a) If Mid(a, i, 4) = "hola" Then Text1.Text = Mid(a, 1, (i - 1)) & Mid(a, (i + 4)) End If Next Bien, nos tenemos que fijar en lo siguiente: If Mid(a, i, 4) = "hola" Then Si os fijais, pongo 4 porke son las letras que tiene la palabra hola Text1.Text = Mid(a, 1, (i - 1)) & Mid(a, (i + 4)) Y aki lo mismo..... Lo que hace esto es koger desde el principio hasta un caracter antes desde donde lo esta buskando y despues le agrega el resto, kitando lo que keremos..... Ya ven, facil, y tonto a la vez.....pero weno, no tengo nada mejor que hacer y ago esto...xD xD xD Salu2 Bien, ahora lo que tienes que hacer es buscar hasta que enkuentres <font color=#008000> y guardas el texto que le sigue, leugo, a ese texto guardado, buskas hasta </font><nobr> y guardas el texto que hay detras de esto, y ya tienes la pagina.... Salu2
|
|
|
En línea
|
"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián
|
|
|
dPix
Desconectado
Mensajes: 222
¬_¬ - ¬O.o
|
No no, no me des todo el código, solo necesito una "pista" de como hacer para que guarde lo que hay antes de </font><nobr> ya que con el code que postee anteriormente consigo que se quede la "página web" + lo que le sigue, pero no consigo guardar "solo la web". Gracias por contestar.
un saludo
|
|
|
En línea
|
|
|
|
Hendrix
|
sigue mi ejemplo, si lo entiendes es facil hacerlo.
Salu2
|
|
|
En línea
|
"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián
|
|
|
soplo
Ex-Staff
Desconectado
Mensajes: 3.592
Debian rool'z
|
Hola Existe una función que busca una string contenida en otra y devuelve su posición instr(PosInicio,StringDondeSeBusca,StringABuscar) El tipo de comparación puede ser binario o textual y si no se especifica se utiliza el que venga en option compare Dim S1 as string, S2 as string, PosIni as integer, PosEncontrado as integer
S1="abcdefghijklm" S2="cde" PosIni=1 PosEncontrado=instr(PosIni,S1,S2) ' valor 3 PosIni=2 PosEncontrado=instr(PosIni,S1,S2) ' valor 0 no encontrado Así que solo tienes que ir leyendo línea a línea buscando "<font color=#008000>" y cuando lo encuentres buscas "</font><nobr>" de la misma manera. Una vez establecidas ambas posiciones solo tienes que extraer con mid la string que se encuentre entre una y otra. Para ello averiguas cuantos caracteres hay en medio PosUltimoCaracterUrl=PosStrFinal-1 PosPrimerCaracterUrl=PosStrInicial+len(PosStrInicial)+1 TotalCaracteresUrl=PosUltimoCaracterUrl-PosPrimerCaracterUrl TotalCaracteresUrl=TotalCaracteresUrl+2 (contar los dos extremos) y ahora extraer el string adecuado StringBuscada=mid(linea$,PosPrimerCaracterUrl,TotalCaracteresUrl) Un saludo
|
|
|
En línea
|
Callar es asentir ¡No te dejes llevar!
|
|
|
Hendrix
|
Mira, no lo suelo hacer, pero aki te lo doy: Function buscar(cadena As String, inicio As String, final As String) Dim a As String Dim b As String Dim c As String
For i = 1 To Len(cadena) c = Mid(cadena, i, Len(inicio)) If c = inicio Then a = Mid(cadena, i + Len(inicio), Len(cadena) - Len(inicio)) End If Next
For r = 1 To Len(a) c = Mid(a, r, Len(final)) If c = final Then b = Mid(a, 1, Len(a) - Len(final)) End If Next
buscar = b
End Function Si no lo entiendes pidelo. En cadena pones todo el texto, en inicio pones el texto donde empezara a excluir y en final pones dodne tiene que terminar. Salu2
|
|
« Última modificación: 3 Septiembre 2006, 11:42 am por Hendrix. »
|
En línea
|
"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián
|
|
|
Hans el Topo
Desconectado
Mensajes: 1.754
"Estoy cansado de no hacer nada"
|
tambien puedes utilizar la funcion split... xD
|
|
|
En línea
|
|
|
|
dPix
Desconectado
Mensajes: 222
¬_¬ - ¬O.o
|
Hendrix: muchas gracias por tu aportación , soplo, lo mismo, al principio cuando me lo explicasteis no lo terminé de pillar, pero más o menos lo he ido pillando cuando me dijeron esto: Dim Ini As Integer Dim Fin As Integer Dim inicial As Integer
Ini = InStr(1, Text1.Text, "<font color=#008000>") + 20 Fin = InStr(Ini + 1, Text1.Text, "</font><nobr>") inicial = Ini Do While inicial <= Ini If Ini = 0 Or Fin = 0 Then Exit Sub 'Cuando vuelva al nº 1 FIN
List1.AddItem Mid(Text1.Text, Ini, Fin - Ini) ' añado al listbox Ini = InStr(Fin + 1, Text1.Text, "<font color=#008000>") + 20 Fin = InStr(Ini + 1, Text1.Text, "</font><nobr>") Loop Lo retoqué yo un poco pero ahora funciona, el caso es que necesito, eliminar "<b>" y ·</b>" cuando aparezcan, lo he intentado con Replace pero me resulta complicado, de todas formas Hendrix., desde mi punto de vista no es de mala educación dar el código, ya que gracias a que me lo dieron lo entendí, muchísimas gracias ;Dy a ver si alguien me puede ayudar con lo de "<b>" y "</b">. Un saludo, dPix
|
|
|
En línea
|
|
|
|
Hans el Topo
Desconectado
Mensajes: 1.754
"Estoy cansado de no hacer nada"
|
¿que no entiendes de esto? Replace(expresión, encontrar, reemplazarCon) ejemplo... text1.text = Replace(text1.text , "<b>", "")
|
|
|
En línea
|
|
|
|
Hendrix
|
Te lo postee aki: http://foro.elhacker.net/index.php/topic,138646.msg650845.html#msg650845Hendrix., desde mi punto de vista no es de mala educación dar el código, ya que gracias a que me lo dieron lo entendí, Cierto, pero se aprende mas buscandolo y kurrandotelo por ti mismo que no que te lo plasemn y ya, ademas, lo dije ironikamente.... Salu2
|
|
|
En línea
|
"Todos los días perdemos una docena de genios en el anonimato. Y se van. Y nadie sabe de ellos, de su historia, de su peripecia, de lo que han hecho, de sus angustias, de sus alegrías. Pero al menos una docena de genios se van todos los días sin que sepamos de ellos". - Juan Antonio Cebrián
|
|
|
|
|