mirror of
https://github.com/ondra-novak/gates_of_skeldal.git
synced 2025-07-22 15:14:49 -04:00
github publish
This commit is contained in:
commit
506e23bf32
542 changed files with 120675 additions and 0 deletions
92
VIDEO/LZW_EX.C
Normal file
92
VIDEO/LZW_EX.C
Normal file
|
@ -0,0 +1,92 @@
|
|||
#include "lzw.h"
|
||||
#include "lzwc.c" //include nahrazuje MAK soubor.
|
||||
#include <stdio.h>
|
||||
|
||||
#define MAX_BUFF 65536
|
||||
|
||||
#define INPUT "testx"
|
||||
#define OUTPUT "testx.l"
|
||||
#define ARCH "e:\\SYSLOG.LZW"
|
||||
|
||||
char input_buffer[MAX_BUFF*2];
|
||||
char output_buffer[MAX_BUFF*2];
|
||||
|
||||
FILE *in,*out;
|
||||
|
||||
int datasize;
|
||||
int compsize;
|
||||
|
||||
void open_files(char *sr,char *tg)
|
||||
{
|
||||
in=fopen(sr,"rb");
|
||||
out=fopen(tg,"wb");
|
||||
if (in==NULL || out==NULL) abort();
|
||||
}
|
||||
|
||||
void close_files()
|
||||
{
|
||||
fclose(in);
|
||||
fclose(out);
|
||||
}
|
||||
|
||||
|
||||
void read_normal()
|
||||
{
|
||||
|
||||
datasize=fread(input_buffer,1,MAX_BUFF,in);
|
||||
}
|
||||
|
||||
void save_normal()
|
||||
{
|
||||
|
||||
fwrite(output_buffer,1,datasize,out);
|
||||
}
|
||||
|
||||
|
||||
int read_comp()
|
||||
{
|
||||
fread(&datasize,1,sizeof(datasize),in);
|
||||
fread(&compsize,1,sizeof(datasize),in);
|
||||
return fread(input_buffer,1,compsize,in);
|
||||
}
|
||||
|
||||
void save_comp()
|
||||
{
|
||||
fwrite(&datasize,1,sizeof(datasize),out);
|
||||
fwrite(&compsize,1,sizeof(datasize),out);
|
||||
fwrite(output_buffer,1,compsize,out);
|
||||
}
|
||||
|
||||
|
||||
main()
|
||||
{
|
||||
puts("");
|
||||
|
||||
init_lzw_compressor(8);
|
||||
open_files(INPUT,ARCH);
|
||||
read_normal();
|
||||
while (datasize!=0)
|
||||
{
|
||||
memset(output_buffer,0,sizeof(output_buffer));
|
||||
compsize=lzw_encode(input_buffer,output_buffer,datasize);
|
||||
printf("Origin: %d Packed: %d Ratio %d%%\n",datasize,compsize,compsize*100/datasize);
|
||||
save_comp();
|
||||
read_normal();
|
||||
reinit_lzw();
|
||||
}
|
||||
close_files();
|
||||
done_lzw_compressor();
|
||||
init_lzw_compressor(8);
|
||||
open_files(ARCH,OUTPUT);
|
||||
while (read_comp())
|
||||
{
|
||||
lzw_decode(input_buffer,output_buffer);
|
||||
save_normal();
|
||||
reinit_lzw();
|
||||
}
|
||||
done_lzw_compressor();
|
||||
printf("Compressed file has been extracted back\n");
|
||||
close_files();
|
||||
printf("and saved as %s.\n",OUTPUT);
|
||||
}
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue