Página 1 de 1
Gerar CRC16 no xHarbour
Enviado: 18 Mar 2024 15:29
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
Gerar CRC16 no xHarbour
Enviado: 20 Mar 2024 21:45
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)
*/