Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   como puedo abrir (desde un programa de delpi) archivos hlp, doc, txt, csv, htm, etcet (https://www.clubdelphi.com/foros/showthread.php?t=12498)

galexanderch 17-07-2004 16:44:48

Problemas con WideString
 
Buenos días,



Soy Alexander Gavidia, desde Venezuela y mi problemas es:

Tengo en una variable WideString una cadena con estos caracteres: D‰"si_ËiÃQ(Ò?=+[ˆK,ÕU7³—L8áRa92‡m@³ vI¬ $JXˆ<Pj
ƒa¬ XdŒ ^fHjy r]Z?‚ -†dOŒ÷IŽv`™ÿÿôEE_ÿÿÿÿôUUUffoÿõUUUfgwoõUUUfwwwõUUUEgwˆ?fUUTWwˆˆfeUTDˆˆˆ…UUUT:™™™UUUD1Ë©ª¥UUT2˪ª UUTC!컺¥UUD2Ü˪TDD3!Ü»´DD3"íÌ»DDC2!ÜÌÄDD3"ÝÌDDC2!îÜÄDD32íÌD333"ÜÏC332!íÏI©åw1üGÖs ü.$*1 õD÷àô¬õ$*èBÖsõ(<õÔöö‰@Ös•Q­

Estos caracteres lo arroja un lector de huellas dactilares, pero cuando se almacena en la base de datos se almacenan solo 6 caracteres y despues no puedo verificar la huella capturada con la huella almacenada. La base de datos es Sql 7.0 y el campo es Nvarchar. Tambien probe guardando la informacion en un archivo de texto, se guarda perfecto, pero cuando uso la funcion readLn, solo me devuelve una parte del archivo. Que me sugieren que haga, por favor?

delphi.com.ar 19-07-2004 02:23:26

Hola Alexander, yo he editado tu hilo porque lo has puesto dentro de este: http://www.clubdelphi.com/foros/showthread.php?t=12481 supongo que por error, pues los temas son totalmente diferentes.

Con respecto a la duda, los WideStrings son una cadena de WideChar y estos son caracteres de 16Bits (recordemos que los Strings son cadenas de Char de 8Bits). Hay funciones de conversión como WideCharToString o StringToWideChar, pero algo me hace creer que tu problema son los caracteres terminados en nulo... ¿Cómo estas guardando el campo en la base de datos?

galexanderch 20-07-2004 21:31:45

Hola, gracias por responderme, respondo a tu pregunta:

Lo estoy guardando desde delphi como AsString, me explico mejor, el campo en la base de datos es nvarchar, pero desde delphi lo mando como parametro a la base de datos tipo String. Te anexo el código:

With FQueryUpdate Do
begin
Sql.Clear;
Sql.Add('INSERT INTO HUELLA (INDICE, ID_HUELLA, TEMPLATE) VALUES (:INDICE, :ID_HUELLA, :TEMPLATE)');
ParamByName('INDICE').asInteger := C;
ParamByName('ID_HUELLA').asString := '13538303';
ParamByName('TEMPLATE').asString := Local_Template;
ExecSql;
end;

La variable Local_template es de tipo WideString!

DarkByte 20-07-2004 22:09:16

Intenta usar las etiquetas [ Delphi ] y [/ Delphi ](sin espacios) para mejorar la presentación de tu código.
Código Delphi [-]
 With FQueryUpdate Do
     begin
       Sql.Clear;
       Sql.Add('INSERT INTO HUELLA (INDICE, ID_HUELLA, TEMPLATE) VALUES (:INDICE, :ID_HUELLA, :TEMPLATE)');
       ParamByName('INDICE').asInteger := C;
       ParamByName('ID_HUELLA').asString := '13538303';
       ParamByName('TEMPLATE').asString := Local_Template;
       ExecSql;
     end;

galexanderch 27-07-2004 23:50:48

Acepto la recomendacion
 
Buenas tardes,

Gracias por la recomendacion de usar las etiquetas para que el codigo se vea mejor, lo tomare en cuenta. Pero aún no encuentro solución a mi problema!

edgusano 31-07-2004 19:47:28

Bueno en cuanto a lo de tu problemilla, creo que es como lo dice delphi.com.ar, sin embargo una vez estuve con alguien en el desarrollo de un interfaz de un lector de huellas con un telefono movil y esta informacion del template se envia por internet para hacer ya sea un verify o un enroll y dado que en http se presentan problemas con caracteres especiales, se utilizo el algoritmo base64 para la codificacion y decoficacion, ya que este transforma todos los caracteres en ascii legible, prueba con eso.


La franja horaria es GMT +2. Ahora son las 04:23:50.

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