Página 1 de 1

hex em string

MensagemEnviado: 19 Out 2009 06:40
por cristian
galera estou fazendo um programa q envia um cupon para impressora DR700 da daruma

mas o status q informa se tem ou nao papel é recebido em hex tipo 0x10 ou no delphi #a0

como faço para exibir este valor transformar em string e jogar no caption de uma label

sei q poderia tratar este valor

mas quero exibir este valor é uma questao didatica

o componente é Tcomport

MensagemEnviado: 20 Out 2009 14:42
por vtrx
Código: Selecionar todos
function  HexToByte(S : String) : Byte;
var
   b1, b2 : Byte;

begin

     b1 := Ord(S[1]);
     if b1 in [48..57] then
        b1 := b1 - 48
     else
        b1 := b1 - 55;
     b2 := Ord(S[2]);
     if b2 in [48..57] then
        b2 := b2 - 48
     else
        b2 := b2 - 55;
     Result := b1 * 16 + b2;

end;


n1     := HexToByte("VALOR EM HEX");
Result := Result + Chr(n2);


Código: Selecionar todos
function ConvertHexToString(value:string):string;
var buf:pansichar; l:integer;
begin
  while pos(' 00',value)>0 do
    delete(value,pos(' 00',value),3);
  while pos(' ',value)>0 do
    delete(value,pos(' ',value),1);
  value:=value+'00';
  l:=length(value) div 2+1;
  buf:=AllocMem(l);
  HexToBin(PAnsiChar(value),buf,l);
  result:=buf;
end;


Código: Selecionar todos
function HexToString(H: String): String;
var I : Integer;
begin
  Result:= '';
  for I := 1 to length (H) div 2 do
    Result:= Result+Char(StrToInt('$'+Copy(H,(I-1)*2+1,2)));
end;


Uma dessas deve servir.

MensagemEnviado: 20 Out 2009 15:52
por cristian
valeu vou testar

MensagemEnviado: 21 Out 2009 20:15
por cristian
nenhuma funcinou

o valor em HEX sempre dar em branco


lembrando que

os valores a serem recebidos é tipo 0x85 quer q aparece H85

0x06=H06

entendeu

MensagemEnviado: 21 Out 2009 22:25
por vtrx
Cristian,não da pra entender como voce quer...
Veja,0X85 é 85 em decimal,H85 é 133 em decimal,0X10 é 10 decimal,(no Delphi pelo que sei se usa $ para números Hex),A0 é 160 decimal,ja 0A é 10...olha a confusão.
Afinal de contas qual a 'String' voce quer transformar,0X alguma coisa ou Decimal para Hex??
10 decimal=$0A Hexa ou A.
Posta a 'String' exata que quer converter.
Os valores aparecem como '0X12,0X34' etc?Sempre com 0X na frente,esse 'X' é uma letra ou possibilidade de mais caracteres??
Aparece valores de 3 casas como 255?

Re: hex em string

MensagemEnviado: 22 Out 2009 21:20
por Wagner de Queiroz
cristian escreveu:galera estou fazendo um programa q envia um cupon para impressora DR700 da daruma

mas o status q informa se tem ou nao papel é recebido em hex tipo 0x10 ou no delphi #a0

como faço para exibir este valor transformar em string e jogar no caption de uma label

sei q poderia tratar este valor

mas quero exibir este valor é uma questao didatica

o componente é Tcomport


ainda sofrendo com essa Daruma?

Entao, o status dela nao é um byte recebido pela serial?

Um byte é um tipo char que varia de 0 a 255 ou seja $10 que é 10h ou 16 em decimal é representado como #10

vc pode tirar o codigo asc de um byte com ORD(valor);

http://www.festra.com/wwwboard/messages/1687.html

if Ord(status)=16 then ShowMessage('Impressora Sem Papel');

MensagemEnviado: 22 Out 2009 22:18
por cristian
Sim ainda sofrendo com ela

mas um colega disse que preciso ativar o controle de fluxo por hardware

pois no pic so estou usando rx e tx e gnd

nao tenho resposta nenhuma ao pergunta o status

MensagemEnviado: 23 Out 2009 07:21
por Wagner de Queiroz
bom, controle de fluxo por hardware nao é dificil de entender, o duro é só implementar, porque vai precisar trabalhar com o CTS e RTS,

O DTR, DSR vc pode grampear juntos

Precisando de ajuda, msn ta na mão