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

📄 operatefile.cpp

📁 DES加密程序 速度将就。。娃嘎嘎。。。 完整可运行的程序 有兴趣的加我qq 4964898
💻 CPP
字号:
#include "StdAfx.h"
#include ".\operatefile.h"


//const INT FILEHEAD::type=841225;

COperateFile::COperateFile(void)
:m_fileWrite(),
m_fileRead()
{m_FileLength=0;
	//m_fh.key=841225;
	::ZeroMemory(&m_fh,sizeof(FILEHEAD));
	m_ReadNum=0;
m_Buffer64=0;
m_ReadNum=0;

for (int i=0;i<100000;i++)
m_buffer100000[i]=0;


}

COperateFile::~COperateFile(void)
{
}
INT COperateFile::OpenFile(LPCTSTR lpszFileName,BOOL iRead,LPCTSTR lpszFileType)
{
	    CFileException e;
	if(iRead)
	   {
		  

		   if(m_fileRead.Open(lpszFileName,CFile::modeRead | CFile::modeNoTruncate|CFile::typeBinary,&e)==0)
		   {
			   char error[100];
			   ::ZeroMemory(error,100);
			   e.GetErrorMessage((LPTSTR)error,100,NULL);
			   TRACE("error0 is %s\n",error);
			   if( m_fileRead.m_hFile!=INVALID_HANDLE_VALUE)
			   m_fileRead.Close();
		return -3;
		   }
		ULONGLONG Len=m_fileRead.GetLength();
		m_FileLength=Len;
		
		if(Len%8!=0)
		{
			 m_ReadNum=Len/8+1;
	m_fh.fill=(8-Len%8)*8;
		
		}
		
		else{ 
          m_ReadNum=Len/8;
			m_fh.fill=0;
		}
		CString tmp=(CString)lpszFileName;
				 tmp.Append(".DES");
		 if(m_fileWrite.Open(tmp,CFile::modeWrite|CFile::modeCreate|CFile::typeBinary,&e)==0)
		{
			 char error[100];
			   ::ZeroMemory(error,100);
			   e.GetErrorMessage((LPTSTR)error,100,NULL);
			   TRACE("error1 is %s\n",error);
			   if( m_fileRead.m_hFile!=INVALID_HANDLE_VALUE)
		m_fileWrite.Close();
			return -3;
		}
 
		
		
		   
	return 0;
		   
		  
	   }
	else
	{
		   if(m_fileRead.Open(lpszFileName,CFile::modeRead | CFile::modeNoTruncate|CFile::typeBinary,&e)==0)
		   {
			   char error[100];
			     ::ZeroMemory(error,100);
			   e.GetErrorMessage((LPTSTR)error,100,NULL);
			   TRACE("error2 is %s\n",error);
			   if( m_fileRead.m_hFile!=INVALID_HANDLE_VALUE)
m_fileRead.Close();
		return -3;
		   }
           ULONGLONG Len=m_fileRead.GetLength()-sizeof(FILEHEAD);
            m_FileLength=Len;
		   if(Len%8!=0)
		
			 m_ReadNum=Len/8+1;
	
		
		else
          m_ReadNum=Len/8;
			
		
          INT tmpType;
	m_fileRead.Read(&tmpType,sizeof(INT));
	
	if(tmpType!=841225)
	{  TRACE("m_fh.charhead %d\n",m_fh.type);
		TRACE("m_charhead is %d\n",tmpType);
		if( m_fileRead.m_hFile!=INVALID_HANDLE_VALUE)
		m_fileRead.Close();
		return -1;
	
	}
	m_fileRead.Read(&m_fh.fill,sizeof(INT));
	
		CString tmp=(CString)lpszFileName;
		tmp.Truncate(tmp.GetLength()-4);
		
	if(m_fileWrite.Open(tmp,CFile::modeWrite|CFile::modeCreate|CFile::typeBinary,&e)==0)
		{
			 char error[100];
			   ::ZeroMemory(error,100);
			   e.GetErrorMessage((LPTSTR)error,100,NULL);
			   TRACE("error3 is %s\n",error);
			   if( m_fileRead.m_hFile!=INVALID_HANDLE_VALUE)
		m_fileWrite.Close();
			return -3;
		}
 
   return 0;
	}

	
}
ULONGLONG COperateFile::GetData(INT i){

  return m_buffer100000[i];
    


}
ULONGLONG COperateFile::GetData(){

  return m_Buffer64;
    
}
INT COperateFile::ReadData(BOOL is8)
{
	if(is8)
	{
	UINT size=m_fileRead.Read(&m_Buffer64,sizeof(ULONGLONG));
	
	
	if( size<=0)
		return 0;
	
	m_Buffer64=m_Buffer64<<(8*(sizeof(ULONGLONG)-size));
	return 8;
	}
	if(m_FileLength>=800000)
	{
	m_fileRead.Read(m_buffer100000,sizeof(ULONGLONG)*100000);
	m_FileLength-=800000;
	return 100000;
	}
	else
	{
		UINT size=m_fileRead.Read(&m_Buffer64,sizeof(ULONGLONG));
	
	
	if( size<=0)
		return 0;
	
	m_Buffer64=m_Buffer64<<(8*(sizeof(ULONGLONG)-size));
	return 8;
	}
	
	
	
}
BOOL COperateFile::SaveDesFile(BOOL DOE,ULONGLONG num,INT len)
{
	
	    if(DOE)

		{  
			
             if(len==100000)
			m_fileWrite.Write((const void*)m_buffer100000,sizeof(ULONGLONG)*100000);
			 else {
			 m_fileWrite.Write((const void*)&m_Buffer64,sizeof(ULONGLONG));
			 
			 }
			
		}
		else
		{ 
			if(len==100000)
			m_fileWrite.Write((const void*)m_buffer100000,sizeof(ULONGLONG)*100000);
		else {
			if(num==m_ReadNum)
			{
				m_Buffer64=m_Buffer64>>m_fh.fill;
		 m_fileWrite.Write((const void*)(&m_Buffer64),sizeof(ULONGLONG)-m_fh.fill/8);
			}
			
			else 
		  
		 m_fileWrite.Write((const void*)&m_Buffer64,sizeof(ULONGLONG));
		}
		}
return true;

}
BOOL COperateFile::WriteFileHead(){

	m_fh.type=841225;
	
	m_fileWrite.Write((const void*)(&m_fh),sizeof(FILEHEAD));
return true;
}
BOOL COperateFile::CloseFile(BOOL iRead)
{
	if(iRead)
	{if( m_fileRead.m_hFile!=INVALID_HANDLE_VALUE)
	m_fileRead.Close();
	}
	else
	{
		if( m_fileWrite.m_hFile!=INVALID_HANDLE_VALUE)
		m_fileWrite.Close();
	}
return true;

}
void COperateFile::DeleteFile(LPCTSTR name)
{
	m_fileRead.Remove(name);

}

⌨️ 快捷键说明

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