PDA

Ver la Versión Completa : array of char en delphi xe


look
06-04-2014, 00:45:36
hola amigos , tengo lo siguiente:


ClockTime:Array[0..19] of Char;


este array funciona bien en delphi 7 , pero en delphi xe5 me devuelve caracteres extranios.

como puedo solucionar esto?

ecfisa
06-04-2014, 07:46:20
Hola look.

No tengo experiencia con Delphi XE pero recuerdo haber leído por ahí que en este, Char es por defecto de tipo WideChar, a diferencia de Delphi 7 que por defecto es de tipo AnsiChar. Esto me anima a sugerirte que intentes especificando el tipo en la declaración del arreglo:
ClockTime:Array[0..19] of AnsiChar;
Lamento no tener modo de probar mi presunción.:(

Saludos :)

nlsgarcia
09-04-2014, 01:55:31
look,


...este array (ClockTime : Array[0..19] of Char) funciona bien en Delphi 7, pero en Delphi XE5 me devuelve caracteres extraños, ¿como puedo solucionar esto?...


Lo que se indica en el Msg #2 es correcto, por defecto a partir de Delphi 2009 cualquier variable de tipo String, Char o Pchar es de tipo Unicode, si se requiere que sea de tipo Ascii debe ser definida como AnsiString, AnsiChar o PAnsichar.

Revisa este código

procedure TForm1.Button1Click(Sender: TObject);
var
ClockTime : Array[0..19] of AnsiChar;
begin
FillChar(ClockTime, Sizeof(ClockTime), ' ');
ClockTime := '1234567890123456789';
ShowMessage(ClockTime);
end;

El código anterior en Delphi XE4 bajo Windows 7 Professional x32, define y procesa un arreglo de tipo AnsiChar.

Espero sea útil :)

Nelson.