Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problema con caracteres al exportar datos hacia excel con una rutina antígua (https://www.clubdelphi.com/foros/showthread.php?t=92830)

rrf 15-02-2018 19:47:35

Problema con caracteres al exportar datos hacia excel con una rutina antígua
 
Hola.

Estoy intentando exportar unos datos (texto y números) desde un programa hecho con Delphi 10.2 starter hacia una hoja de cálculo excel.

Utilizo una rutina que he sacado de este enlace: https://cc.embarcadero.com/item/13462 . Es de 1999.

La exportación de números funciona normalmente, aunque el texto no lo hace bien, porque solo aparece la primera letra del texto en cada celda, y a veces no aparece nada.

Esta rutina, fue escrita hace bastantes años y quizás por ello es incompatible con la versión actual de Delphi (funciona normalmente en Delphi 7) en algún aspecto relacionado con manejar las cadenas de texto.

¿Alguien sabe cómo corregir esto?.

Gracias de antemano.

Saludos.

Casimiro Notevi 15-02-2018 21:46:01

Mira algunos de los enlaces de final de página, abajo del todo.

rrf 16-02-2018 00:18:57

Gracias Casimiro.

Ya he revisado los enlaces y no he encontrado algo que me resuelva la duda.
Creo que el problema radica en que Delphi 10.2 es incompatible con lo que hace esa rutina. Con Delphi 7 funciona bien.

Seguramente la causa es que Delphi 10.2 maneja los String de forma diferente a los antiguos Delphi (como Delphi 7), y solo reconoce el primer carácter de cada cadena de caracteres. Y posiblemente haya alguna función que permita una conversión o algo así, eso es lo que quisiera saber.

Casimiro Notevi 16-02-2018 01:06:01

Prueba a cambiar esto:
Código Delphi [-]
procedure XlsWriteCellLabel(XlsStream: TStream; const ACol, ARow: Word; const AValue: string);
Por esto otro:
Código Delphi [-]
procedure XlsWriteCellLabel(XlsStream: TStream; const ACol, ARow: Word; const AValue: ansistring);

rrf 16-02-2018 01:22:34

Muchas gracias Casimiro.

Ese era el "detalle" que no fui capaz de ver y que tan rápidamente has descubierto.

El problema está solucionado y esta rutina sigue siendo útil (19 años después de haber sido escrita).

Recibe mi más sincero agradecimiento por tu ayuda.

Casimiro Notevi 16-02-2018 01:43:26

^\||/^\||/^\||/


La franja horaria es GMT +2. Ahora son las 08:10:48.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi