Gerar CRC16 no xHarbour

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

kakamachado
Usuário Nível 1
Usuário Nível 1
Mensagens: 30
Registrado em: 07 Mar 2016 18:54
Localização: Rio de Janeiro

Gerar CRC16 no xHarbour

Mensagem por kakamachado »

Boa tarde. Tenho um sistema muito grande que foi migrado, há alguns anos, do Clipper para o xHarbour/Minigui. Preciso implementar a geração do CRC16 para compor o payload do PIX. Pesquisei no forum e no Google e existe vários posts sobre o assunto, mas não consegui implementar nenhuma das soluções ali indicadas. Parece que no Harbour tem uma função nativa (hb_numtohex(hb_crcct(cString, 0xFFFF, 0x11021))). Tem algo semelhante no xHarbour? Se sim, oque e em que lib? Ou alguém desenvolveu alguma função e poderia postar? Ou alguém sabe como gerar este CRC (aí desenvolvo a rotina). Desde já agradeço. Abs
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Gerar CRC16 no xHarbour

Mensagem por sygecom »

Qual versão do seu xharbour ?

Dei uma procurada aqui e achei isso abaixo, mas não testei, porém me parece que tem

Código: Selecionar todos

/*
   HB_CRC16(string) -> Crc16
      Calculates CCITT Crc16 (16-bit Cyclic redundancy checksum)
   Parameters:
      string  - string variable to calculate CRC16
   Returns:
      Crc16 as a 2-byte string variable (high byte first)

   HB_NCRC16(string,intermed16) -> nCrc16
      Calculates CCITT Crc16 (16-bit Cyclic redundancy checksum)
   Parameters:
      string     - string variable to calculate CRC16
      intermed16 - unnecessary parameter to start from default 0
                   as an integer (0-65535) if current string
                   is a fragment to calculate CRC32 for entire file
                   [HB_NCRC16(c1+c2,0)==HB_NCRC16(c2,HB_NCRC16(c1,0))]
   Returns:
      nCrc16 as an integer (0-65535)

 */
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder