Descompactador Simples
Publicado por Ricardo Rodrigues Lucca 27/02/2004
[ Hits: 8.957 ]
Homepage: http://aventurasdeumdevop.blogspot.com.br/
Este é o descompactor da tecnica arcaica run-length e deve ser usado com o script "Compactador Simples" para funcionar adequadamente.
Qualquer duvida sobre qualquer um dos programas email-me.
/*
        Escrito Por Ricardo Rodrigues Lucca
        Este programa descompacta um arquivo usando a seguinte forma:
                - Se a uma dupla de caracteres seguidos
         - Pega-se o proximo caracter
         - O caracter pegado indica quantas vezes o caracter duplicado devera ser ainda repetido.
      - Se não tiver dois caracteres seguidos
                   - Escreve o caracter pego anteriormente
        Ex.:
        Arquivo Comprimido: 97 97 3 100 100 0 2 2 1
        Arquivo Descomprimido: 97 97 97 97 97 100 100 2 2 2
   
       OBS: O arquivo esta bem simples acredito que ninguem vai ter problemas de entendimento. Qualquer coisa email-me.
       OBS2: Me basiei no site http://www.ulbra.tche.br/~danielnm/ed/E/polE.html, especificamente na tecnica run-length.
*/
#include <stdio.h>
FILE *arq;
void testa(void)
{
   char s[255];
   printf("Digite o nome do arquivo: ");
   scanf(" %s", s);
   arq = fopen(s,"r");
   if (arq==NULL) {
      printf("Arquivo nao existe!\n");
      testa();
   }   
}
void descompacta(void)
{
   int p, n, r, check=0;
   FILE *s;
   s = fopen("nve","w");
   r = 0;
   n = fgetc(arq);
   while (!feof(arq)) {
      p = n;
      n = fgetc(arq);
      if (check==1) {
         check = 0;
         continue;
      }
      
      if (p==n) {
            fputc(p,s);
            fputc(p,s);
            p = fgetc(arq);
            while (p>0)
            {
               fputc(n,s);
               p--;
            }
            r=0;
            check = 1;
      }
      else {
         fputc(p,s);
         r=0;
      }
   }   
   fclose(s);
}
int main(void)
{
   testa();
   descompacta();
   fclose(arq);
   return 0;
}
utilities_linux.h - Biblioteca com diversas funções para o Linux
Nenhum comentário foi encontrado.
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
Instalação dualboot Windows 11 e Debian 13 (0)
Programa fora de escala na tela do pc (33)
Eu queria adicionar a incon do wifi e deixa transparente no fluxbox no... (0)









