hexfile - conversor de binario/hexadecimal

Publicado por Perfil removido (última atualização em 09/01/2026)

[ Hits: 717 ]

Download hexfile.c




Esse programa faz a leitura de um arquivo binário, por exemplo, um *.png e converte para um arquivo de texto *.hex, onde se encontra os valores hexadecimal, e também pode compilar um *.hex de volta para *.png, caso queira!
modo de usar:
abrir
./hexfile -a imagem.png
compilar
./hexfile -f imagem.png.hex

  



Esconder código-fonte

#include <stdio.h>
#include <string.h>
#include <errno.h>
    int main(int argc, char *argv[]){
      // abre e fecha arquivos
      FILE *fileOpen, *fileClose;
      // byte a byte
      int byte = 0;
      // uso ./hexfile -a (abrir)
      // ou ./hexfile -f (fechar)
      if(strcmp(argv[1], "-a") == 0){
          fileOpen = fopen(argv[2], "r");
          // caso der merda
         if(fileOpen == NULL){
            perror("Erro de leitura");
            return 1;
         }
         // concatenação com extenção .hex
          char name[256];
          strcpy(name, argv[2]);
          strcat(name, ".hex");
          fileClose = fopen(name, "w");
          // caso der merda
         if(fileClose == NULL){
            perror("Erro de escrita");
            return 1;
         }
         /* captura um byte de cada vez e escreve
         em um arquivo *.hex */
          while((byte = fgetc(fileOpen)) != EOF){
             fprintf(fileClose, "%X ", byte);   
         }
         // fecha
         fclose(fileOpen);
         fclose(fileClose);   
      } else if(strcmp(argv[1], "-f") == 0){
         // faz a edição para nome original
            char name[256];
         strcpy(name, argv[2]);
         name[strlen(name)-4]='\0';
         fileOpen = fopen(argv[2], "r");
         // caso der merda
         if(fileOpen == NULL){
            perror("Erro de leitura");
            return 1;
         }
         fileClose = fopen(name, "wb");
         if(fileClose == NULL){
            perror("Erro de escrita");
         }
         // faz a leitura do *.hex e salva binario
         while(fscanf(fileOpen, "%X", &byte) == 1){
            fputc((unsigned char)byte, fileClose);            
         }
         // fecha
         fclose(fileOpen);
         fclose(fileClose);
      }
      else{
         // help
          printf("use: ./hexfile -a [arquivo]\n");
          printf("use: ./hexfile -f [arquivo]\n");   
      }
      
       return 0;   
   }

Scripts recomendados

Listar arquivos e diretórios com suas propriedades

Leitura de arquivo texto separando as colunas

Manipulaçao de arquivos e Meta dados em videos

Ler .conf

Cadastor de Produtos em C e metodos ordenação


  

Comentários
[1] Comentário enviado por SamL em 11/01/2026 - 11:41h

O código tá bacana, só lhe chamo atenção ao detalhe do nome dos arquivos (fileOpen e fileClose).
Observe que estes podem ser melhorados se forem algo como fileIn e fileOut, porque o que estas variáveis representam na verdade são um "arquvo de entrada" e um "arquivo de saída".

Em computação e programação, vc de vez em quando vai lidar com variáveis de entrada (input) e variáveis de saída (output).
Então, faz sentido nomear variáveis dessa natureza como In/Out.

Fica ai a dica.


______________________________
https://nerdki.blogspot.com.br/ acessa ai, é grátis!

[2] Comentário enviado por removido em 11/01/2026 - 17:43h


Obrigado!
Vou acolher sua dica, vai ser de grande ajuda!
Abraço!


Contribuir com comentário