![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Hola,
Gracias Casimiro. Ahora mismo acabo de probar un ejecutable compilado en Delphi 2007 en Windows 7 y funciona como se espera también en Windows 8. Sin embargo, si compilo el código que produce dicho ejecutable en Delphi 2007 bajo Windows 8 el resultado no es el esperado. Algo falla. Lo único que se me ocurre ahora mismo es que la versión de los componentes Indy (usados para codificar/decodificar) es distinta, puesto que en Windows 7 uso la que viene instalada en Delphi 2007, y, casi estoy seguro, aquí en Windows 8, tengo instalada la última versión de Indy. Pareciera en efecto que se trata de un problema en la codificación/decodificación, así que voy a intentar (también vaya día tengo hoy...) usar otros componentes para codificar/decodificar, aquí mismo en el ClubDelphi se han compartido algunas funciones para hacerlo. Claro que como tú dices, Casimiro, a mí también me extraña mucho que la codificación/decodificación no coincida entre diferentes versiones de Indy. Y, por otro lado, si esto fuese así, resultaría que el problema está en la última versión de los componentes... Madre mía... |
|
#2
|
||||
|
||||
|
Hola,
Bueno, pues, seguimos avanzando (?). En efecto, probando a codificar y decodificar usando esta unidad, en lugar de los componentes Indy, todo parece funcionar correctamente en Delphi 2007... tanto en Windows 7 como en Windows 8. ¿Todo arreglado entonces? Realmente, no. Personalmente, hago uso de los componentes Indy para codificar y decodificar en "base 64" en varios de mis proyectos. Y hasta ahora todo parecía funcionar bien. De hecho acabo de hacer una prueba en cierto programa y funciona bien... ¿Qué me pasa doctor? |
|
#3
|
||||
|
||||
|
Estos problemitas son los más complicados de resolver, necesitan mucha investigación detectivesca
![]()
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#4
|
||||
|
||||
|
Hola,
Sí; desde luego, no sé yo si tendré tiempo y lugar como para ponerme a investigar qué puede estar pasando en definitiva. Más bien tal vez sea mejor esperar a que algo falle para tratar de arreglarlo. A mí me extraña mucho que la última versión de Indy añada algún "bug" que no existía en versiones anteriores, pero, lo cierto es que sería posible. Pero me extraña doblemente, porque, para mí tengo que Indy se usa profusamente en muchos proyectos, de manera que parece raro que un error así no está arreglado o no se comente por ahí... ahora que lo pienso, tal vez pueda buscar información sobre esto: a ver si se comenta por ahí o no sobre algún error en la última versión de Indy en relación a al componente para trabajar con "base 64"... ya veremos. |
|
#5
|
||||
|
||||
|
Una pregunta: ¿por qué tienes que codificar en base 64? Eso sólo es para cuando necesitas transmitir la información en formato sólo texto, por ejemplo, cuando envías un correo electrónico, pero de otra forma es innecesario. Claro que no podrás mostrarla en un TMemo pero de todas maneras, ¿qué haría el usuario con esa información encriptada en el Memo? Si simplemente necesitas que el usuario conserve esa información puedes guardarla en un archivo usando un stream.
// Saludos |
|
#6
|
||||
|
||||
|
Habría que mirar ese código despacito y como se realizan ciertos cast. No es muy buena idea mezclar string con buffers cifrados pues éstos, además de caracteres no imprimibles pueden contener "ceros" en el buffer cifrado, al convertirlo a string la cadena se parte en en "0". Recordar el estilo "C" de cadenas ASCIIZ. Es probable que te esté ocurriendo esto. No que no tiene ninguna lógica es que no te funcione con BASE64, que está pensado para evitar este efecto.
Saludos. |
|
#7
|
||||
|
||||
|
Los strings pueden manejar perfectamente bytes no imprimibles incluido el cero. Lo único que no puedes es, este, imprimirlos. Por eso, insisto, a menos que quiera mostralo en un Memo, mandarlo por correo, guardarlo en un XML o algo por el estilo, no tiene necesidad de pasar a base 64.
// Saludos |
![]() |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Recuperar BookMark despues de cerrar dataset... | verito_83mdq | Varios | 10 | 27-01-2011 00:03:18 |
| Recuperar Informacion despues de un Commit | Kipow | Firebird e Interbase | 2 | 01-04-2009 19:04:02 |
| Error al Tratar de Almacenar Cadena con Acepto | inferno | Firebird e Interbase | 3 | 04-10-2006 17:17:40 |
| Recuperar autoinc. después de Insert to | aig | MS SQL Server | 2 | 22-09-2004 10:41:28 |
| Recuperar autonumericos despues de Borrar, Cancelar ,Ect. | IcebergDelphi | Varios | 1 | 14-05-2003 07:55:02 |
|