⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 code.h

📁 对文本内的字符进行加密(重编码)。(由于是早期编写的
💻 H
字号:
//#ifndef _CODE_H
//#define _CODE_H
//if cbc is before 127(contains 127) cac = ccode + (cbc -31) - 1 =ccode + cbc -32  
//if cbc is after 127  cac = [ccode + (cbc -31) - 1] - 127 + 31 = ccode + cbc -128  
//if cac >= ccode  cbc = cac + 32 - ccode 
//if cac < ccode cbc = cac + 128 - ccode
#include<fstream>
#include<string>
#include "dia1.h"
#include "dia2.h"
#include "dia3.h"
#include "dia4.h"
#include "dia5.h"
#include "dia6.h"
#include "dia7.h"
using namespace std;

class Code
{
public:
	static char codeChar(char cbc ,char ccode)
	{
		if(!(int(cbc)<=127 && int(cbc)>=32 && int(ccode)<=127 && int(ccode)>=32)) return cbc;
		if(int(ccode + cbc -32) <=127) return char(ccode + cbc -32);
		else return char(ccode + cbc - 128);
	}
	static char decodeChar(char cac ,char ccode)
	{
		if(!(int(cac)<=127 && int(cac)>=32 && int(ccode)<=127 && int(ccode)>=32)) return cac;
		if(cac >= ccode) return char(cac + 32 - ccode);
		else return char(cac + 128 - ccode);
	}
	static string codeString(const string & bc , const string & co) 
	{
		if(bc == "" ||co == "") return bc;
		string ac;
		ac.assign(bc);
		int i =0,j =0 ,k =0;
		for(i = 1; i<=(bc.length() / co.length()+1) && k < bc.length(); i++)
		{
			for( j = 0; j < co.length() && k < bc.length(); j++ , k++)
			{
				ac[k] = codeChar(bc.at(k) , co.at(j));
			}
		}
		return ac;
	}
	static string decodeString(const string & ac ,const string & co)
	{
		if(ac == "" || co == "" ) return ac;
		string bc;
		bc.assign(ac);
		int i = 0 ,j = 0 , k = 0;
		for(i = 1; i<=(ac.length() / co.length()+1) && k < ac.length(); i++)
		{
			for( j = 0; j < co.length() && k < ac.length(); j++ , k++)
			{
				bc[k] = decodeChar(ac.at(k) , co.at(j));
			}
		}
		return bc;
	}
	
	
	static bool codeFile(string fn1, string fn2, string co)
	{
		char temp ;	
		bool succeed = NULL;
		string data;
		string code(co);
		data.assign(code);    ///////
		ifstream inf;
		ofstream outf;
		inf.open(fn1.c_str(),ios::in);
		outf.open(fn2.c_str(),ios::out);
		if(!inf) 
		{
			dia1 d1;
			d1.DoModal();
			return false;
		}
		if(!outf) 
		{
			dia5 d5;
			d5.DoModal();
			return false;
		}
		
		while(!inf.eof())
		{
			for(int i = 0; i < code.length();i++)
			{
				
				if(inf.eof()) 
				{
					string te = data;
					data = "";
					data.assign(te ,0,i-1);
					break;	
				}
				inf.get(temp);
				
				data[i] = temp;
			}
			outf<<Code::codeString(data,code);
			succeed = true;
		}
		
		inf.close();
		outf.close();
        return succeed;
	}
	static bool decodeFile(string fn1,string fn2,string co)
	{
		char temp ;	
		bool succeed = false;
		string data;
		string code(co);
		data.assign(code);    ///////
		ifstream inf;
		ofstream outf;
		inf.open(fn1.c_str(),ios::in);
		outf.open(fn2.c_str(),ios::out);
		if(!inf) 
		{
			dia1 d1;
			d1.DoModal();
			return false;
		}
		if(!outf) 
		{
			dia5 d5;
			d5.DoModal();
			return false;
		}
		
		while(!inf.eof())
		{
			for(int i = 0; i < code.length();i++)
			{
				
				if(inf.eof()) 
				{
					string te = data;
					data = "";
					data.assign(te ,0,i-1);
					break;	
				}
				inf.get(temp);
				
				data[i] = temp;
			}
			outf<<Code::decodeString(data,code);
			succeed = true;
		}
		
		inf.close();
		outf.close();
        return succeed;
	}
};
/*
static bool codeFile(string infname ,string outfname ,string co)
{
bool succeed = false;
ifstream inf;
inf.open(infname ,ios::in);
ofstream outf;
outf.open(outfname ,ios::out);
while(!inf.eof())
{
for(int i = 0; i < code.length();i++)
{

  if(inf.eof()) 
  {
  string te = data;
  data = "";
  data.assign(te ,0,i-1);
  break;
  }
  inf.get(temp);
  
				data[i] = temp;
				}
				outf<<Code::codeString(data,code);
				succeed = true;
				}
				inf.close();
				outf.close();
				return succeed;
				}
				*/
				
				
				
				
				//#endif
				
				
				
				

				

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -