FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Guardar jpg en archivo XML
Hola a todos, necesito almacenar una imágen jpg en un archivo xml.
Lo que estoy haciendo es leer en un string la información del archivo que contiene la imagen. Y luego lo asigno a un nodo del archivo xml, pero tengo el problema de que al asignar el string al Nodo, que es de Tipo OleVariant, se pierde parte de lo que asigno. Por ejemplo, el string comieza con ÿoÿä'#0#$10'JDF.... y sigue, cuando asigno, el OleVariant queda con ÿoÿä, por lo tanto al grabar el xml, sólo guarda ÿoÿä. Soy nuevo en XML, quizás este sea un problema que ya tiene solución pero no la encuentro. Estoy probando con una pequeña aplicación de prueba, en la que creo un xml, creo un nodo (con los diferentes TNodeType), asigno el string "con la imagen" y no he podido hacer que guarde todo el string el xml. Espero que me puedan dar una mano. Desde ya muchas gracias. Guillermo
__________________
Hasta luego. Guillermo |
#2
|
||||
|
||||
Una posibilidad es que "codifiques" el contenido del jpeg que es binario, es decir, que tendrá caracteres imprimibles y no imprimibles a un formato que contenga solamente caracteres imprimibles.
Es lo mismo que se hace cuando envias un binario por correo, puesto que los protocolos solo permiten transmitir en el cuerpo de un mensaje bytes en cierto rango (creo que >=32) y lo demás son códigos de control, etc. Para codificarlo podes valerte de las INDY, que en la pestaña Indy Misc tiene varios componentes para tal efecto (p. ej. el TidBase64Encoder). Luego, al leer nuevamente el xml, el agente que lo haga ha de decodificar el contenido nuevamente (por ejemplo con el TidBase64Decoder). Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#3
|
|||
|
|||
Muchas gracias por tu pronta respuesta. Voy a intentar lo que me indicas.
Te cuento que hice esta prueba: Asigné, en tiempo de diseño, a un TEdit el contenido de la imagen (la cadena de caracteres), luego asigné al OleVariant el contenido de Edit1.Text y asi sí el OleVariant mantiene todos los caracteres. Lo raro es que asigné, en tiempo de ejecución, los caracteres de la imagen a un TEdit y sólo almacenó ÿoÿä, es decir, sólo una parte, lo mismo pasó con un TMemo. La verdad que no se que está pasando. Muchas gracias nuevamente.
__________________
Hasta luego. Guillermo |
#4
|
||||
|
||||
Aún cuando en delphi te sea posible guardar caracteres < 32 en un archivo xml, supongo que este no será válido para el 99.99% de otros sistemas que procesan xml, pues esperan archivos de texto y seguramente no estén preparados para manejar adecaudamente caracteres de control en el contenido.
Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#5
|
|||
|
|||
Muchas gracias. Les comenté a mis jefes acerca de lo que me dijiste y, aparentemente, la especificación de los requisitos no es la correcta.
Voy a esperar a ver que me dicen y te cuento. Muchas gracias, nuevamente.
__________________
Hasta luego. Guillermo |
#6
|
|||
|
|||
y ¿en que van a emplear eso de guardar una imagen jpg, en un archivo
XML. ? que usos le van a dar, yo no le capto. bien. :S |
|
|
|