Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #4  
Antiguo 09-05-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 23
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
rabata2001,

Cita:
Empezado por rabata2001
...Entiendo que la instrucción format pasa de AnsiChar a código hexadecimal(%x)...
Es correcto , en Delphi se puede convertir de Dec a Hex y viceversa de la siguiente forma:
Código Delphi [-]
 procedure TForm1.Button1Click(Sender: TObject);
 var
    Hex : String;
    Dec : Integer;
 
 begin
 
    Hex := '$8F'; // 8F en Hex = 143 en Dec
 
    // Convierte de Hex a Dec
    Dec := StrToInt(Hex);
    ShowMessage(IntToStr(Dec));
 
    // Convierte de Dec a Hex
    Hex := Format('%.2x',[Dec]);
    ShowMessage(Hex);
 
 end;
Cita:
Empezado por rabata2001
...Es la cadena completa, cuando realiza la transformación (código indicado arriba), se puede observar que el contenido es más grande...


Revisa este código:
Código Delphi [-]
 procedure TForm1.Button2Click(Sender: TObject);
 var
    i : Integer;
    Hex, HexFmt : String;
    Buffer : PAnsiChar;
 
 begin
 
    Buffer := 'Ž'#2#$1F;
 
    for i := 0 to Length(Buffer) - 1 do
    begin
       Hex := Format('%.2x',[Ord(Buffer[i])]);
       HexFmt := HexFmt + '{' + Hex + '} ';
    end;
 
    MessageDlg(HexFmt,mtInformation,[mbOK],0);
 
 end;
El código anterior, convierte la cadena de caracteres 'Ž'#2#$1F en su representación hexadecimal y muestra su contenido, el cual en este caso es el siguiente:



¿Por que la salida difiere de lo sugerido en el Msg #3?, en la cadena 'Ž'#2#$1F hay tres caracteres :

1- 'Ž' = 8E en Hex (En la cadena representado como un carácter).
2- #2 = 02 en Hex (En la cadena representado como un número decimal).
3- #$1F= 1F en Hex (En la cadena representado como un número hexadecimal).

Luego no entiendo lo siguiente :
Cita:
Empezado por rabata2001
Delphi me pinta esto: 'Ž'#2#$1F, pero al convertirlo a caracteres ascii, me trae lo siguiente en hexadecimal:

{8E} {02} {1F} {00} {5B} {36} {00} {00} {02} {00} {01} {02} {00} {00} {07} {02} {25} {00} {0C} {01} {79} {06} {01} {00} {81} {04} {97} {12} {02} {00} {8F} {8E} {02} {1F} {00} {5B} {36} {00} {00} {02} {00} {01} {02} {00} {00} {07} {02} {25} {00} {0C} {01} {79} {06} {01} {00} {81} {04} {97} {12} {02} {00} {8F} {00}
Sin embargo siguiendo la estructura de caracteres sugerida por la cadena 'Ž'#2#$1F, el carácter delimitador 8F debe venir de la siguiente forma en la cadena recibida : #$8F, luego:
Código Delphi [-]
 procedure TForm1.Button3Click(Sender: TObject);
 var
    EOL : PAnsiChar; //String; // AnsiString;
 
 begin
    EOL := #$8F;
    TcpClient1.Receiveln(EOL);
 end;
Espero sea útil

Nelson.

Última edición por nlsgarcia fecha: 09-05-2014 a las 02:44:15.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Reemplazar carácter por otro carácter rotsen26 OOP 3 27-05-2013 10:51:38
Leer texto caracter a caracter kikecg Firebird e Interbase 11 23-11-2010 17:44:44
leer caracter por caracter, una linea de un memo douglas OOP 1 05-10-2007 06:59:31
Ayudaaaa!!! Tabla ASCII: El carácter Ñ vs. carácter ¥ Berto2003 Varios 5 26-07-2005 15:37:48
Caracter de escape para comilla JOMABRI Varios 2 08-07-2004 23:02:50


La franja horaria es GMT +2. Ahora son las 17:14:39.


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