mjaxnjaymdg是什么c盘哪些文件可以删除除吗

c/c++ LZW压缩+base64编码 - 为程序员服务
为程序员服务
LZW压缩+base64编码
小程序,用于发布大量文本信息,并在公司里接收。
EncodeString.cpp
// EncodeString.cpp : Defines the entry point for the console application.
#include &stdafx.h&
#include &EncodeString.h&
#include &string&
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
/////////////////////////////////////////////////////////////////////////////
// The one and only application object
CWinApp theA
const char EncodeTable[]=&ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz+/&;
BYTE m_MaxBits = 9;
int m_TotalBits = 0;
DWORD m_SavedData = 0;
unsigned char Tmp1,Tmp2,Tmp3;
string strE
int LineLength=0;
struct dicElement
keep the prefix of the element
keep the letter of the element
dicElement()
m_Prefix = 0;
m_Letter = 0;
void GetBytesFromCode(CPtrArray *m_dictionary,CByteArray *Buffer, DWORD code)
Fill an array with bytes using the code for retrieving
those bytes from the dictionary elements
Since we dont have 0-255 in the dictionary we have to make
sure, that if we get below 256 we stop (but still add that code)
Every code higher then 255, will have a letter attached to it,
which we use for getting the string back.
while (code & 255)
dicElement *tmpEl = (dicElement*)m_dictionary-&GetAt(code - 256);
Buffer-&Add(tmpEl-&m_Letter);
code = tmpEl-&m_P
Buffer-&Add((BYTE)code);
void set1st(char c)
void set2nd(char c)
void set3rd(char c)
strEncode+= EncodeTable[Tmp1 && 2];
strEncode+= EncodeTable[((Tmp1 && 4) | (Tmp2 && 4)) & 0x3F];
strEncode+= EncodeTable[((Tmp2 && 2) | (Tmp3 && 6)) & 0x3F];
strEncode+= EncodeTable[Tmp3 & 0x3F];
if(LineLength+=4,LineLength==76)
strEncode+=&\r\n&;
LineLength=0;
void (*base64_func[])(char c)={
set1st,set2nd,set3rd
void CompressData(DWORD toSave)
Move the data you want to write few bits to the left
and combine it with the already existing data in the buffer
m_SavedData |= toSave && (32 - m_MaxBits - m_TotalBits);
Add the new added number of bits to the total bits counter
m_TotalBits += m_MaxB
Check if it's possible to enter the data to the file
(over and equal a byte of data)
while (m_TotalBits &= 8)
Get the byte we want to write
DWORD writeData = m_SavedD
writeData &&= 24;
//dest.Write(&writeData, 1);
base64_func[(n++)%3](writeData);
remove the byte from the buffer
m_SavedData &&= 8;
Remove the byte from the counter
m_TotalBits -= 8;
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
int nRetCode = 0;
// initialize MFC and print and error on failure
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
// TODO: change error code to suit your needs
cerr && _T(&Fatal Error: MFC initialization failed&) &&
nRetCode = 1;
if (IsClipboardFormatAvailable(CF_TEXT) && OpenClipboard(NULL)) //CF_UNICODETEXT
HGLOBAL hMem = GetClipboardData(CF_TEXT);
if (hMem != NULL)
LPTSTR lpStr = (LPTSTR)GlobalLock(hMem);
if (lpStr != NULL)
GlobalUnlock(hMem);
DWORD m_MaxCode[32]={0,0x1,0x3,0x7,0xF,0x1F,0x3F,0x7F,0xFF,0x1FF,0x3FF,0x7FF,0xFFF,0x1FFF,0x3FFF,0x7FFF,0xFFFF,0x1FFFF,0x3FFFF,0x7FFFF,0xFFFFF,0x1FFFFF,0x3FFFFF,0x7FFFFF,0xFFFFFF,0x1FFFFFF,0x3FFFFFF,0x7FFFFFF,0xFFFFFFF,0x1FFFFFFF,0x3FFFFFFF,0x7FFFFFFF};
CPtrArray *m_dictionary= new CPtrA
long result = 0;
BYTE readByte = 0;
CString logS
DWORD resAdd = 256;
Get the total file size
DWORD prefix=*lpStr++;
Go over the rest of the file and read it
while (readByte=*lpStr++)
Check if the prefix and readByte combination exist in the dictionary
Returns the code of an element from the dictionary
by searching for the prefix and letter assosiated with
that element code.
Returns -1 if no entry was found
int total = m_dictionary-&GetSize();
dicElement *temp = NULL;
for (int counter = 0; counter & counter++)
temp = (dicElement*)m_dictionary-&GetAt(counter);
if ((temp-&m_Prefix == prefix) &&
(temp-&m_Letter == readByte))
temp = NULL;
if (temp != NULL)
result =counter + 256;
result =-1;
If not exist
if (result == -1)
Add the new combination
Add a dictionary element.
Since the dictionary should already have all the values
between 0-255, we start it from 256.
dicElement *temp = new dicE
temp-&m_Prefix =
temp-&m_Letter = readB
m_dictionary-&Add(temp);
resAdd = m_dictionary-&GetSize() + 255;
Calculate the new bit size needed to encode the file
Check the value of the parameter against the Maximum number possible
and then returns the counter
This can also be acheived by right shifting the value until we get 0
and counting the number of times we doing it.
for (BYTE counter = 0; counter & 32; counter++)
if (resAdd &= m_MaxCode[counter])
m_MaxBits =
Since the minimal number of bits we are using is 9 (256 is the begining of the dictionary),
then the minimal number of bits is check to return a 9 in case a lower value will be
reached in the application
if (m_MaxBits & 9)
m_MaxBits = 9;
Send the prefix for compression in to the destination file
CompressData(prefix);
Set the prefix as the readByte
prefix = readB
Initiate the result
result = -1;
Set the prefix as the result
readByte = 0;
Insert to the file the maximum number of bit (for signaling the end of the
compression\decompression)
CompressData(prefix);
CompressData(m_MaxCode[m_MaxBits]);
Flash the rest of the file with 0
CompressData(0);
int Mod=n % 3;
if(Mod==1)
strEncode+= EncodeTable[(Tmp1 & 0xFC) && 2];
strEncode+= EncodeTable[((Tmp1 & 0x03) && 4)];
strEncode+= &==&;
else if(Mod==2)
strEncode+= EncodeTable[(Tmp1 & 0xFC) && 2];
strEncode+= EncodeTable[((Tmp1 & 0x03) && 4) | ((Tmp2 & 0xF0) && 4)];
strEncode+= EncodeTable[((Tmp2 & 0x0F) && 2)];
strEncode+= &=&;
Remove the existing dictionary
hMem = GlobalAlloc( GHND | GMEM_DDESHARE, strEncode.length()+1);
pMem = (char*)GlobalLock(hMem);
strcpy(pMem,strEncode.c_str());
GlobalUnlock(hMem);
EmptyClipboard();
SetClipboardData(CF_TEXT,hMem);
CloseClipboard();
return nRetC
DecodeString.cpp
// DecodeString.cpp : Defines the entry point for the console application.
#include &stdafx.h&
#include &DecodeString.h&
#include &string&
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
/////////////////////////////////////////////////////////////////////////////
// The one and only application object
CWinApp theA
DWORD m_MaxCode[32]={0,0x1,0x3,0x7,0xF,0x1F,0x3F,0x7F,0xFF,0x1FF,0x3FF,0x7FF,0xFFF,0x1FFF,0x3FFF,0x7FFF,0xFFFF,0x1FFFF,0x3FFFF,0x7FFFF,0xFFFFF,0x1FFFFF,0x3FFFFF,0x7FFFFF,0xFFFFFF,0x1FFFFFF,0x3FFFFFF,0x7FFFFFF,0xFFFFFFF,0x1FFFFFFF,0x3FFFFFFF,0x7FFFFFFF};
BYTE m_MaxBits= 9;
int m_TotalBits= 0;
DWORD m_SavedData= 0;
DWORD data = 0;
CByteArray decodeS
BYTE writeData = 0, character = 0;
int counter = 0;
Get the first prefix information
BYTE readB
int idx=0;
CPtrArray *m_
string strD
void decompress_adpter(BYTE b);
struct dicElement
keep the prefix of the element
keep the letter of the element
dicElement()
m_Prefix = 0;
m_Letter = 0;
void GetBytesFromCode(CPtrArray *m_dictionary,CByteArray *Buffer, DWORD code)
Fill an array with bytes using the code for retrieving
those bytes from the dictionary elements
Since we dont have 0-255 in the dictionary we have to make
sure, that if we get below 256 we stop (but still add that code)
Every code higher then 255, will have a letter attached to it,
which we use for getting the string back.
dicElement *tmpEl = NULL;
while (code & 255)
tmpEl = (dicElement*)m_dictionary-&GetAt(code - 256);
Buffer-&Add(tmpEl-&m_Letter);
code = tmpEl-&m_P
Buffer-&Add((BYTE)code);
void getbyte(BYTE b)
Add the byte to the read buffer
m_SavedData |= (DWORD) b && (24 - m_TotalBits);
Add byte to the bit counter
m_TotalBits += 8;
void initial(BYTE b)
calculate the return information
prefix = m_SavedData && (32 - m_MaxBits);
Remove the returned information from the buffer
m_SavedData &&= m_MaxB
Remove the return information bit size from the bit counter
m_TotalBits -= m_MaxB
Save the prefix as the last used character (since we're writing it in the
destination file)
character = (BYTE)
Write the prefix in the destination file (the first byte inside
a LZW copressed file is always the first byte of the original file)
strDecode+=
decompress_adpter(b);
void rest2(BYTE b)
calculate the return information
data = m_SavedData && (32 - m_MaxBits);
Remove the returned information from the buffer
m_SavedData &&= m_MaxB
Remove the return information bit size from the bit counter
m_TotalBits -= m_MaxB
if (data != m_MaxCode[m_MaxBits])
Check if the code exist in the dictionary
Check if the code exist in the dictionary
Returns TRUE if so, and FALSE if not.
If the code is lower then 256, then the element is a normal
ASCII character, and as such is considered to be in the
dictionay.
if (data &= 256 && data - 256 &= (unsigned)m_dictionary-&GetSize())
Get the last used character into the decod buffer
decodeString.Add((BYTE)character);
Decode the existing prefix into a known string of data
GetBytesFromCode(m_dictionary,&decodeString, prefix);
Decode the data into the decode buffer
GetBytesFromCode(m_dictionary,&decodeString, data);
Get the last letter inside the data, as the last used letter
character = decodeString.GetAt(decodeString.GetSize() - 1);
Go over the decode buffer, from the end to the start,
and write the information into the destination file
counter = decodeString.GetSize();
while (counter & 0)
writeData = (BYTE)decodeString.GetAt(--counter);
strDecode+=writeD
To show a log in the view
Clear the decode buffer
decodeString.RemoveAll();
Add the new combination into the dictionary
Add a dictionary element.
Since the dictionary should already have all the values
between 0-255, we start it from 256.
dicElement *tmp = new dicE
tmp-&m_Prefix =
tmp-&m_Letter = (BYTE)
m_dictionary-&Add(tmp);
Calculate the new buffer size to read now
DWORD value=m_dictionary-&GetSize() + 257;
Check the value of the parameter against the Maximum number possible
and then returns the counter
This can also be acheived by right shifting the value until we get 0
and counting the number of times we doing it.
for (BYTE counter = 0; counter & 32; counter++)
if (value &= m_MaxCode[counter])
m_MaxBits =
Since the minimal number of bits we are using is 9 (256 is the begining of the dictionary),
then the minimal number of bits is check to return a 9 in case a lower value will be
reached in the application
if (m_MaxBits & 9)
m_MaxBits = 9;
Set the new prefix to use
void (*rest_func[])(BYTE b)={
getbyte,rest2
void rest(BYTE b)
rest_func[m_TotalBits & 24](b);
decompress_adpter(b);
void (*getrestbytes[])(BYTE b)={
initial,rest
void getotherbytes(BYTE b)
getrestbytes[idx](b);
void (*decompress_func[])(BYTE b)={
getbyte,getotherbytes
void decompress_adpter(BYTE b)
decompress_func[m_TotalBits & 24](b);
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
int nRetCode = 0;
// initialize MFC and print and error on failure
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
// TODO: change error code to suit your needs
cerr && _T(&Fatal Error: MFC initialization failed&) &&
nRetCode = 1;
if (IsClipboardFormatAvailable(CF_TEXT) && OpenClipboard(NULL)) //CF_UNICODETEXT
HGLOBAL hMem = GetClipboardData(CF_TEXT);
if (hMem != NULL)
LPTSTR lpStr = (LPTSTR)GlobalLock(hMem);
if (lpStr != NULL)
GlobalUnlock(hMem);
TCHAR* Data=lpS
int DataByte=strlen(lpStr);
m_dictionary= new CPtrA
TCHAR DecodeTable[] =
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
62, // '+'
63, // '/'
52, 53, 54, 55, 56, 57, 58, 59, 60, 61, // '0'-'9'
0, 0, 0, 0, 0, 0, 0,
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, // 'A'-'Z'
0, 0, 0, 0, 0, 0,
26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, // 'a'-'z'
while (i & DataByte)
if (*Data != '\r' && *Data!='\n')
nValue = DecodeTable[*Data++] && 18;
nValue += DecodeTable[*Data++] && 12;
decompress_adpter((nValue & 0x00FF0000) && 16);
if (*Data != '=')
nValue += DecodeTable[*Data++] && 6;
decompress_adpter((nValue & 0x0000FF00) && 8);
if (*Data != '=')
nValue += DecodeTable[*Data++];
decompress_adpter(nValue & 0x000000FF);
else// 回车换行,跳过
for(data=(m_SavedData == 0 && m_TotalBits == 0)?m_MaxCode[m_MaxBits]:m_SavedData && (32 - m_MaxBits),m_SavedData &&= m_MaxBits,m_TotalBits -= m_MaxB
data != m_MaxCode[m_MaxBits];
data=(m_SavedData == 0 && m_TotalBits == 0)?m_MaxCode[m_MaxBits]:m_SavedData && (32 - m_MaxBits),m_SavedData &&= m_MaxBits,m_TotalBits -= m_MaxBits)
Check if the code exist in the dictionary
Check if the code exist in the dictionary
Returns TRUE if so, and FALSE if not.
If the code is lower then 256, then the element is a normal
ASCII character, and as such is considered to be in the
dictionay.
if (data &= 256 && data - 256 &= (unsigned)m_dictionary-&GetSize())
Get the last used character into the decod buffer
decodeString.Add((BYTE)character);
Decode the existing prefix into a known string of data
GetBytesFromCode(m_dictionary,&decodeString, prefix);
Decode the data into the decode buffer
GetBytesFromCode(m_dictionary,&decodeString, data);
Get the last letter inside the data, as the last used letter
character = decodeString.GetAt(decodeString.GetSize() - 1);
Go over the decode buffer, from the end to the start,
and write the information into the destination file
counter = decodeString.GetSize();
while (counter & 0)
writeData = (BYTE)decodeString.GetAt(--counter);
strDecode+=writeD
Clear the decode buffer
decodeString.RemoveAll();
Add the new combination into the dictionary
Add a dictionary element.
Since the dictionary should already have all the values
between 0-255, we start it from 256.
dicElement *tmp = new dicE
tmp-&m_Prefix =
tmp-&m_Letter = (BYTE)
m_dictionary-&Add(tmp);
Calculate the new buffer size to read now
DWORD value=m_dictionary-&GetSize() + 257;
Check the value of the parameter against the Maximum number possible
and then returns the counter
This can also be acheived by right shifting the value until we get 0
and counting the number of times we doing it.
for (BYTE counter = 0; counter & 32; counter++)
if (value &= m_MaxCode[counter])
m_MaxBits =
Since the minimal number of bits we are using is 9 (256 is the begining of the dictionary),
then the minimal number of bits is check to return a 9 in case a lower value will be
reached in the application
if (m_MaxBits & 9)
m_MaxBits = 9;
Set the new prefix to use
hMem = GlobalAlloc( GHND | GMEM_DDESHARE, strDecode.length()+1);
pMem = (char*)GlobalLock(hMem);
strcpy(pMem,strDecode.c_str());
GlobalUnlock(hMem);
EmptyClipboard();
SetClipboardData(CF_TEXT,hMem);
CloseClipboard();
return nRetC
测试文本文件
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
LxqI3R//wAA=
您可能的代码
相关聚客文章
相关专栏文章

我要回帖

更多关于 linux 删除文件夹 的文章

 

随机推荐