gfileloader.cpp

来自「用FREE BASIC做的演示程序」· C++ 代码 · 共 66 行

CPP
66
字号
#include"GFileLoader.h"
#include"GPacker.h"
#include<fstream>
#include<assert.h>
using namespace std;
GFileLoader::GFileLoader(GVPacker*pPacker)
{
	m_pPacker=pPacker;
}
GFileLoader::~GFileLoader()
{
}
bool GFileLoader::LoadFile(const string & strFileName,GFileData & fd)
{
	if(NULL==m_pPacker)
	{
		ifstream infile;
		infile.open(strFileName.data(),ios::in|ios::binary);
		if(!infile.is_open())
		{
			return false;
		}
		infile.seekg(0,ios::end);
		unsigned long dwDataSize=infile.tellg();
		infile.seekg(0,ios::beg);
		fd.AllocMemory(dwDataSize);
		if(!fd.GetData())
			return false;
		infile.read(fd.GetData(),dwDataSize);
		infile.close();
		return true;
	}
	else
	{
		return m_pPacker->ReadPackedFile(strFileName,fd);
	}
}
bool GFileLoader::LoadFile(const string & strFileName,char**ppData,unsigned long & dwDataSize)
{
	assert(ppData);
	if(NULL==m_pPacker)
	{
		ifstream infile;
		infile.open(strFileName.data(),ios::in|ios::binary);
		if(!infile.is_open())
		{
			return false;
		}
		infile.seekg(0,ios::end);
		dwDataSize=infile.tellg();
		infile.seekg(0,ios::beg);
		*ppData=new char[dwDataSize];
		if(!(*ppData))
		{
			return false;
		}	
		infile.read(*ppData,dwDataSize);
		infile.close();
		return true;
	}
	else
	{
		return m_pPacker->ReadPackedFile(strFileName,ppData,dwDataSize);
	}
}

⌨️ 快捷键说明

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