Ir ao conteúdo
  • Cadastre-se

Converter arquivo em hexa e vice-versa


Granella

Posts recomendados

Olá boa tarde pessoal,

 

Estou desenvolvendo uma DLL com uma função de converter o conteúdo de arquivos (bytes) em hexadecimal e enviar esses dados convertidos pela rede. O problema que necessito de converter um certo limite de bytes lidos, ou seja, eu passo uma quantidade, lê os bytes, converte e retorna. O problema esta na volta desses dados, quando tento converter em bytes novamente o arquivo não fica igual foi lido. Segue o código de leitura:

int readData(FILE *file, char *buffer, int readBytes, int convert) {	if (file == NULL) {		return -1;	}	unsigned char *byteBuffer = (unsigned char*) malloc(readBytes);	char *bufPtr = buffer;	size_t i, n;	n = (size_t) fread(byteBuffer, sizeof(uint8_t), readBytes, file);	if (convert > 0) {		for (i = 0; i < n; i++) {			bufPtr += sprintf(bufPtr, "%02X", byteBuffer[i]);		}	} else {		sprintf(buffer, "%s", byteBuffer);	}		free(byteBuffer);	return n;}

Código de escrita:

int writeData(FILE *file, char *buffer, int convert) {	if (file == NULL) {		return -1;	}	int i, n;    uint8_t str_len = strlen(buffer);	for (i = 0; i < (str_len / 2); i++) {		n = fprintf(file, "%02x", buffer + 2 * i);	}	return n;}
Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!