FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Hola movorack,
Si realmente me haz generado más dudas, si bien programo en php, el tema de lazarus no conozco. Voy a investigar. Gracias! Cita:
|
#2
|
||||
|
||||
Buena guia
Por aqui un gran colaborador del club nos ha dejado una guia que te puede ser de mucha utilidad.
http://neftali.clubdelphi.com/?p=3297 Buen animo y exitos con tu proyecto. |
#3
|
|||
|
|||
Gracias Amigo!
Realmente me siento contenido por la buena onda de todos. Gracias a todos! |
#4
|
||||
|
||||
En ningún momento ramonigimenez ha dicho que sea el desarrollador de la página en cuestión a la que se conecta. Tampoco ha manifestado que incluso esté a su disposición la posibilidad de un webservice, a pesar de que si ha confirmado que se maneja con PHP.
Hasta el momento ha dicho que visita la página, que casualmente está diseñada en PHP, y que en más adelante su idea es ingresar usuarios hacia la misma. Más no ha aportado palabras concretas que el mismo sea el encargado de llevar dicha página. De ser así puedo entender que la mejor opción que le ofrecen uds sería disponer de un WebService y consumirlo con Indy u otras bibliotecas. Ahora bien, si resulta ser que por "mipagina.com.ar" es un sitio al que el no tiene control, y no ofrecen un webservice pues ya no queda otra que recurrir a otras opciones. Una de ellas es emplear por ejemplo el TidHTTP de Indy. Y viendo el ejemplo de código, intuyo que es este escenario al que se enfrenta realmente. La cosa se complica un poquito bastante cuando se trata de Lazarus, al ser multiplataforma y si justamente está en sus planes que la aplicación asi lo sea, habrá que considerar alternativas que lleven a eso. No entiendo porque meten a Delphi cuando el propio título aclara que emplea Lazarus. Lo están mareando al pobre. ramonigimenez, con el componente TidHTTP de Indy puedes visitar el sitio y pasarle como parámetro justamente los datos del usuario. Tanto Post() como Get() tienen versiones sobrecargadas. Entre ellas está la que buscas. Aunque tampoco es estrictamente necesario que invoques a ese método, puedes simplemente navegar hacia la URL concreta que espera los parámetros. Digamos que sea ProcesaDatos.php el escript encargado de recibir los parámetros y generar la página de resultado (o confirmación, o lo que fuese). La URL en cuestión será algo como elsitio.com.ar/procesadatos.php?param1=dato1¶m2=dato2. Utiliza el modo desarrollador de Chrome para hacer "ingeniería inversa" y ver como es que llaman los parámetros, el orden en que van y como están parseados. Con esto te evitas estar armando un TStrings para pasarle los parámetros a la URL y simplemente armas el URL "completo" y le das Post(). Ahora bien, si la idea es luego de hacer un Post() hacia el sitio, obtener una página a la que consultar a modo de consultar si todo anda bien, lo más directo es en lugar de emplear Post() valerse de Get(). Esto te evita un doble disparo del evento WorkEnd. ¿Porqué? Porque se procede a hacer una lectura/escritura del armado del HTML. Con Get() directamente obtienes todo de una. Para trabajar con parámetros se resume a algo como esto:
Y para evitarse armarlos, basta con:
Ahora bien, si necesitas recuperar la página HTML que te genera Get o Post, tengo una advertencia. ¡Necesitas capturar el código fuente original ANTES de que el componente TidHTTP realice su propio trabajo de encode° No se si es cosa de un bug, o es cosa de diseño pero puedes tener problemas entre el encode original que ha sido escrito y definido en el sitio, y el que aplica los componentes Indy. De modo que por ejemplo en el Memo1 que puse a modo de ejemplo termines con cosas como que un texto como Güemes o Ñoqui que ves en cualquier navegador, en el memo te encuentras con G?emes o ?oqui. ¿Cómo hacer esto? Aprovechando otro de los sobrecargados, debes crear un TStringStream en el que recibirás el código fuente, y luego proceder a aplicar el encode que tiene el sitio hacia el esperado (que por lo general, y por regla, Lazarus espera UTF8). Por ejemplo si la página define como encode ISO-8859-1, tu deberas aplicar ISO_8859_1ToUTF8():
Ahora verás en el Memo el HTML original correctamente escrito. Lo que resta ya es cosa de "procesar" el HTML y leer lo que necesites. Saludos, |
#5
|
|||
|
|||
Muchachos,
A todos disculpas si no he sido lo suficientemente claro en la descripción del problema. Tomando como base lo que han dicho todos, lo resolví casi igual a como lo menciono Delphius. Les dejo el código,
NOTA: Lo hice en delphi por que en Lazarus se me complico la instalación de indy. Aprovecho para consultar se puede embeber otro ejecutable en mi programa o no se puede hacer? GRACIAS A TODOS!!! Última edición por ecfisa fecha: 15-12-2015 a las 21:10:07. Razón: Etiquetas [delphi][/delphi] |
#6
|
||||
|
||||
Hola ramonigimenez.
Muchas gracias por publicar la solución que encontraste. Por favor, cuando pongas código en tus mensajes usa las etiquetas, de este modo: (ya las agregué a tu mensaje) Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#7
|
||||
|
||||
Desconozco que complejo sea instalar Indy en Lazarus; si usas CodeTyphon la cosa es mucho más sencilla ya que CT lo que hace es intalarte Lazarus con varios componentes, y entre ellos Indy.
Si tienes dificultades para instalarlo acude al propio foro de Indy en su sitio oficial o bien al de Lazarus/FreePascal. En este último la gente es muy buena y acuden en ayuda muy rápido. Las veces que he tenido alguna duda (mi problema con el encode que describo lo he consultado ahí) no he tenido dificultades. Es una comunidad muy activa. Lo de embeber un ejecutable dentro de otro la verdad es que no sabría indicarte algo; no se si será posible al menos en una solución que sea multiplataforma. En Delphi una vía es valerse de archivos de recursos .res pero no si para Lazarus este mismo enfoque pueda aportar utilidad en un mundo multiplataforma. Saludos, |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Enviar datos a una plantilla MS Word desde Lazarus | El_Chava | Lazarus, FreePascal, Kylix, etc. | 5 | 06-07-2015 22:56:24 |
no logro enviar .xml a bd usando el server | giulichajari | Conexión con bases de datos | 6 | 24-03-2015 18:05:43 |
Como enviar mensaje usando BB PIN | elvymena | Internet | 0 | 24-11-2010 18:05:02 |
Enviar documento usando el fax de Windows | epuigdef | Varios | 5 | 17-10-2008 08:55:27 |
enviar un correo usando php | skinnerpro | PHP | 1 | 19-10-2007 22:33:41 |
|