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

📄 rangerparameterfile.cpp

📁 支票扫描仪协议Ranger的应用.使用vc7.1
💻 CPP
字号:
#include "stdafx.h"
#include "RangerParameterFile.h"


// CRangerParameterFile
// ===========================================================================================================================================
CRangerParameterFile::CRangerParameterFile():m_bOpen(FALSE)
{


}

CRangerParameterFile::~CRangerParameterFile()
{

}

BOOL CRangerParameterFile::Create(LPCSTR lpszFileName)
{
	if (m_bOpen) return FALSE;

	m_bOpen = FALSE;

	if (!CFile::Open(lpszFileName,CFile::modeReadWrite|CFile::modeCreate))
		return FALSE;

	// if the file is not created, create it again.
	m_RangerParameterInfo.init();
	Write((void*)&m_RangerParameterInfo.headinfo,sizeof(RANGERPARAMETERINFOHEDER));
	m_bOpen = TRUE;
	return TRUE;
}


BOOL CRangerParameterFile::Open(LPCSTR lpszFileName)
{
	if (m_bOpen) return FALSE;

	m_bOpen = FALSE;

	if (!CFile::Open(lpszFileName,CFile::modeReadWrite))
		return FALSE;

	// check header information
	Read(&m_RangerParameterInfo.headinfo,sizeof(RANGERPARAMETERINFOHEDER));
	if (m_RangerParameterInfo.headinfo.bRangerParameterBeginMask[0] != 'R'||
		m_RangerParameterInfo.headinfo.bRangerParameterBeginMask[1] != 'B'||
		m_RangerParameterInfo.headinfo.bRangerParameterEndMask[0] != 'R'||
		m_RangerParameterInfo.headinfo.bRangerParameterEndMask[1] != 'E')
		return FALSE;

	m_bOpen = TRUE;
	return TRUE;
}


BOOL CRangerParameterFile::ToFiles(LPCSTR lpszJobOptionFile,LPCSTR lpszDriverOptionFile,LPCSTR lpszOtherOptionFile)
{
	if (!m_bOpen) return FALSE;

	// job option
	DeleteFile(lpszJobOptionFile);
	CFile f1;
	f1.Open(lpszJobOptionFile,CFile::modeReadWrite|CFile::modeCreate);
	if (m_RangerParameterInfo.headinfo.dwJobOptionLength > 0)
	{
		Seek(m_RangerParameterInfo.headinfo.dwJobOptionOffset + m_RangerParameterInfo.headinfo.dwHeaderSize,0);
		LPBYTE lpBuffer = new BYTE[m_RangerParameterInfo.headinfo.dwJobOptionLength];	
		Read((void*)lpBuffer,m_RangerParameterInfo.headinfo.dwJobOptionLength);
		f1.Write((void*)lpBuffer,m_RangerParameterInfo.headinfo.dwJobOptionLength);
		delete[] lpBuffer;
	}
	f1.Close();

	// Driver Option
	DeleteFile(lpszDriverOptionFile);
	CFile f2;
	f2.Open(lpszDriverOptionFile,CFile::modeReadWrite|CFile::modeCreate);
	if (m_RangerParameterInfo.headinfo.dwDriverOptionLength > 0)
	{
		Seek(m_RangerParameterInfo.headinfo.dwDriverOptionOffset+m_RangerParameterInfo.headinfo.dwHeaderSize,0);
		LPBYTE lpBuffer = new BYTE[m_RangerParameterInfo.headinfo.dwDriverOptionLength];	
		Read((void*)lpBuffer,m_RangerParameterInfo.headinfo.dwDriverOptionLength);
		f2.Write((void*)lpBuffer,m_RangerParameterInfo.headinfo.dwDriverOptionLength);
		delete[] lpBuffer;
	}
	f2.Close();

	// Other Option
	DeleteFile(lpszOtherOptionFile);
	CFile f3;
	f3.Open(lpszOtherOptionFile,CFile::modeReadWrite|CFile::modeCreate);
	if (m_RangerParameterInfo.headinfo.dwOtherOptionLength > 0)
	{
		Seek(m_RangerParameterInfo.headinfo.dwOtherOptionOffset + m_RangerParameterInfo.headinfo.dwHeaderSize,0);
		LPBYTE lpBuffer = new BYTE[m_RangerParameterInfo.headinfo.dwOtherOptionLength];	
		Read((void*)lpBuffer,m_RangerParameterInfo.headinfo.dwOtherOptionLength);
		f3.Write((void*)lpBuffer,m_RangerParameterInfo.headinfo.dwOtherOptionLength);
		delete[] lpBuffer;
	}
	f3.Close();
}

BOOL CRangerParameterFile::FromJobOption(LPCSTR lpszJobOptionFile)
{
	if (!m_bOpen) return FALSE;
	CFile f;
	f.Open(lpszJobOptionFile,CFile::modeRead);
	long lSize = f.GetLength();
	LPBYTE lpBuffer = new BYTE[lSize];
	f.Read(lpBuffer,lSize);
	long endPos = SeekToEnd();

	// Write Data
	Write((void*)lpBuffer,lSize);

	// Update Head Information
	m_RangerParameterInfo.headinfo.dwJobOptionOffset = endPos - m_RangerParameterInfo.headinfo.dwHeaderSize;
	m_RangerParameterInfo.headinfo.dwJobOptionLength = lSize;
	SeekToBegin();
	Write((void*)&m_RangerParameterInfo.headinfo,sizeof(RANGERPARAMETERINFOHEDER));

	delete[] lpBuffer;
	f.Close();
}

BOOL CRangerParameterFile::FromDriverOption(LPCSTR lpszDriverOptionFile)
{

	if (!m_bOpen) return FALSE;
	CFile f;
	f.Open(lpszDriverOptionFile,CFile::modeRead);
	long lSize = f.GetLength();
	LPBYTE lpBuffer = new BYTE[lSize];
	f.Read(lpBuffer,lSize);
	long endPos = SeekToEnd();

	// Write Data
	Write((void*)lpBuffer,lSize);

	// Update Head Information
	m_RangerParameterInfo.headinfo.dwDriverOptionOffset = endPos - m_RangerParameterInfo.headinfo.dwHeaderSize;
	m_RangerParameterInfo.headinfo.dwDriverOptionLength = lSize;
	SeekToBegin();
	Write((void*)&m_RangerParameterInfo.headinfo,sizeof(RANGERPARAMETERINFOHEDER));

	delete[] lpBuffer;
	f.Close();
}

BOOL CRangerParameterFile::FromOtherOption(LPCSTR lpszOtherOptionFile)
{
	if (!m_bOpen) return FALSE;
	CFile f;
	f.Open(lpszOtherOptionFile,CFile::modeRead);
	long lSize = f.GetLength();
	LPBYTE lpBuffer = new BYTE[lSize];
	f.Read(lpBuffer,lSize);
	long endPos = SeekToEnd();

	// Write Data
	Write((void*)lpBuffer,lSize);

	// Update Head Information
	m_RangerParameterInfo.headinfo.dwOtherOptionOffset = endPos - m_RangerParameterInfo.headinfo.dwHeaderSize;
	m_RangerParameterInfo.headinfo.dwOtherOptionLength = lSize;
	SeekToBegin();
	Write((void*)&m_RangerParameterInfo.headinfo,sizeof(RANGERPARAMETERINFOHEDER));

	delete[] lpBuffer;
	f.Close();
}

⌨️ 快捷键说明

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