📄 rle.cpp
字号:
#include "stdafx.h"
#include "compressing.h"
#include <fcntl.h>
#include <io.h>
void CompressRLE(CString fileName, CString archName)
{
FILE *in = _wfopen(fileName, L"rb");
FILE *out = _wfopen(archName, L"wb");
unsigned char current;
unsigned char prev;
unsigned char counter = 0;
int flag = fread(&prev, 1, 1, in);
current = prev;
while (flag > 0)
{
while (counter!=255 && current==prev && flag>0)
{
flag = fread(¤t, 1, 1, in);
counter++;
}
if (flag < 0)
break;
else
{
fwrite(&counter, 1, 1, out);
fwrite(&prev, 1, 1, out);
counter = 0;
}
prev = current;
}
fclose(in);
fclose(out);
}
void DecompressRLE(CString archName, CString fileName)
{
FILE *in = _wfopen(archName, L"rb");
FILE *out = _wfopen(fileName, L"wb");
unsigned char count = 0;
unsigned char symbol = 0;
while (fread(&count, 1, 1, in) > 0)
{
fread(&symbol, 1, 1, in);
for (int i=0; i < count; i++)
fwrite(&symbol, 1, 1, out);
}
fclose(in);
fclose(out);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -