hex em string

Programação Delphi e Pascal

Moderadores: 51, guest2003

hex em string

Mensagempor cristian » 19 Out 2009 06:40

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
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor vtrx » 20 Out 2009 14:42

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.
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Mensagempor cristian » 20 Out 2009 15:52

valeu vou testar
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor cristian » 21 Out 2009 20:15

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
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor vtrx » 21 Out 2009 22:25

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?
Avatar do usuário
vtrx
Dword
 
Mensagens: 2239
Registrado em: 20 Abr 2008 21:01

Re: hex em string

Mensagempor Wagner de Queiroz » 22 Out 2009 21:20

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');
Seja Livre, Use Linux
Avatar do usuário
Wagner de Queiroz
Word
 
Mensagens: 872
Registrado em: 11 Out 2006 13:38
Localização: Barueri-SP

Mensagempor cristian » 22 Out 2009 22:18

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
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor Wagner de Queiroz » 23 Out 2009 07:21

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
Seja Livre, Use Linux
Avatar do usuário
Wagner de Queiroz
Word
 
Mensagens: 872
Registrado em: 11 Out 2006 13:38
Localização: Barueri-SP


Voltar para Delphi e Pascal

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x