Descompactador Simples
Publicado por Ricardo Rodrigues Lucca 27/02/2004
[ Hits: 8.700 ]
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; }
Balanceamento de parênteses utilizando Pilha
Imprime a soma dos numeros positivos e negativos
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
SysAdmin ou DevOps: Qual curso inicial pra essa área? (3)
É cada coisa que me aparece! - não é só 3% (3)
Melhorando a precisão de valores flutuantes em python[AJUDA] (5)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta