FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Busqueda en un richedit o en un memo
Hola, mi problema es que guardo el código fuente de una web en un memo o un richedit, y despues de guardarlo quiero buscar unos enlaces en ese código para poder luego guardarles en un array.
lo que quiero guardar en el array es tipo: <a href="texto/index.php?=123456"></a> y yo quiero guardar el texto/index.php?=123456 o simplemente el 123456. Tambien e de decir que el 123456 varia en cada enlace, es un codigo aleatorio y tampoco tiene la misma longitud de caracteres. Y que cuando me encuentre el primer enlace, despues de guardarle en un array siga buscando el siguiente asta el final del memo/richedit. ¿Alguna idea? Saludos. |
#2
|
||||
|
||||
Si el documento está bien construido, creo que la mejor opción es usar alguno de los diversos analizadores XML que existen para Delphi. Sólo tienes que buscar un poco para encontrarlos porque en el Club se han comentado estos componentes en más de una ocasión. Así, una vez analizado el contenido del RichEdit, sólo tienes que buscar nodos "a" y de los que encuentres sólo hay que copiar la propiedad "href".
|
#3
|
||||
|
||||
Hola titomigue, puedes utilizar las funciones Pos, PosEx y Copy, tu codigo quedaría mas o menos así:
Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. Última edición por Ñuño Martínez fecha: 03-05-2010 a las 17:17:57. Razón: Arreglar problema con enlaces. |
#4
|
||||
|
||||
Con las etiquetas [delphi ] se pierde parte del codigo, deben ser cosas del VBulletin, este es el codigo completo:
Código:
var Texto, Url, Valor : String; ............ begin PosIni := 0; Texto := Memo1.Text; While PosEx('<a href', Texto, PosIni)>0 Do begin PosIni := PosEx('<a href', Texto, PosIni); PosFin := PosEx('>', Texto, PosIni); //Obtenemos la Url Url := Copy(Texto, PosIni, PosFin-PosIni-1); Ini := Pos('?=', Url); Valor := Copy(Url, Ini+2, Length(url)-1); //Valor lo guardas en tu arreglo o StringList Inc(PosIni); end;
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
#5
|
||||
|
||||
Pues sí, parece que lo del código fuente no funciona muy bien, aunque lo he cambiado justo a la vez que tú y ahora se ve bien.
|
#6
|
|||
|
|||
pues no consigo que me entre en el while...
While PosEx('<a href', Texto, PosIni)>0 Do se lo salta directamente, y al modificar la condicion "....)=0" entra pero no pilla ningun valor. Edito: no se que le pasa al 'a href' pero poniendo el protocolo http para buscar la cadena me ha funcionado, muchisimas gracias Última edición por titomigue fecha: 03-05-2010 a las 20:53:36. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Busqueda y selección en un Memo | Cecilio | Varios | 4 | 26-06-2008 13:00:40 |
Scrollbar con un richedit y y un memo | lachuza | Gráficos | 3 | 04-11-2007 08:52:34 |
Como guardar un MEMO o un RICHEDIT en una db... | Greco | Conexión con bases de datos | 3 | 28-08-2007 20:27:02 |
Establecer numero maximo lineas RichEdit o Memo | pepecharlie67 | Varios | 9 | 05-04-2006 22:52:52 |
Parte de un RichEdit a otro RichEdit (donde esté el cursor) | Tomy | Varios | 3 | 21-12-2005 21:08:15 |
|