Compactador Simples
Publicado por Ricardo Rodrigues Lucca 27/02/2004
[ Hits: 17.131 ]
Homepage: http://aventurasdeumdevop.blogspot.com.br/
Estes programa serve para compactar um arquivo usando uma tecnica arcaica chamada run-length que compacta no maximo 255 caracteres num unico byte. Claro o programa esta mais flexivel(veja a tecnica na pagina onde me basiei), pois permite compactar qualquer arquivo já que não fica dependente de um caracter dito especial. Fora isso, ele pode demorar um bocado se o arquivo for muito grande e não tem um "salva-guarda" pra impedir que o arquivo fique maior.
/*
Escrito Por Ricardo Rodrigues Lucca
Este programa compacta um arquivo usando a seguinte forma:
- Conta-se os caracteres repetidos em sequencia
- Escreve os caracteres
Ex.:
Arquivo Original : 97 97 97 97 97 100 100 2 2 2
Arquivo Comprimido: 97 97 3 100 100 0 2 2 1
OBS: Quando o numero chega a 256 caracteres em sequencia é forçada uma escrita ja que não dá pra ter um valor maior de 255 em 1 byte.
OBS2: O arquivo esta bem simples acredito que ninguem vai ter problemas de entendimento. Qualquer coisa email-me.
OBS3: Baseado no site http://www.ulbra.tche.br/~danielnm/ed/E/polE.html
*/
#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 compacta(void)
{
int p, n, r, check=0;
FILE *s;
s = fopen("saida","w");
r = 0;
n = fgetc(arq);
while (!feof(arq)) {
p = n;
n = fgetc(arq);
if (check==1) {
check = 0;
continue;
}
if (p==n) {
r++;
if (r==256) {
fputc(p,s);
fputc(p,s);
fputc(r-1,s);
r = 0;
check = 1;
}
}
else {
fputc(p,s);
if (r>0) {
fputc(p,s);
fputc(r-1,s);
}
r=0;
}
}
fclose(s);
}
int main(void)
{
testa();
compacta();
fclose(arq);
return 0;
}
Rotinas para manipulação de matrizes
Pedindo uma senha ao usuário!!!
Utilizando acentuação na linguagem C
Retornar o montante de um capital aplicado a juros compostos
Nenhum comentário foi encontrado.
Porque Gentoo semi-binário atualmente (desabafo)
A combinação de WMs com compositores feitos por fora
Audacious, VLC e QMMP - que saudades do XMMS
SUNO OpenSource: Crie um servidor de gerador de música com IA
Capturando senha LDAP em texto claro e como proteger usando TLS no Samba 4
Mais uma pós Instalação Arch Linux
Plantar o Singrante Google Chrome no Void Linux
Preciso de ajuda com minha pesquisa sobre o Linux Mint (2)
Configuração resolução tela no zorn os 18 (1)
Configuração resolução tela no zorn os 18 (1)









