Пример #1
0
//---------------------------------------------------------------------------
// 函数:	Load
// 功能:	加载一个Tab文件
// 参数:	FileName	文件名
// 返回:	TRUE		成功
//			FALSE		失败
//---------------------------------------------------------------------------
BOOL KTabFile::Load(LPSTR FileName)
{
	KPakFile	File;
	DWORD		dwSize;
	PVOID		Buffer;

	// check file name
	if (FileName[0] == 0)
		return FALSE;

	if (!File.Open(FileName))
	{
		g_DebugLog("Can't open tab file : %s", FileName);
		return FALSE;
	}

	dwSize = File.Size();

	Buffer = m_Memory.Alloc(dwSize);

	File.Read(Buffer, dwSize);

	CreateTabOffset();

	return TRUE;
}
Пример #2
0
// 功能:	加载一个Tab文件
int	KTabFile::LoadData(IFile* pFile)
{
	assert(pFile);
	Clear();

	int				nResult = false;
	unsigned int	dwSize = pFile->Size();
	if (dwSize == 0)
		return true;

	m_pMemory = (unsigned char *)malloc(dwSize + 1);
	m_pMemory[dwSize] = 0;	// 多申请一个字节的长度,以便于后面程序对换行符判断时不至于读取越界内存
	if (m_pMemory)
	{
		m_uMemorySize = dwSize;
		if (pFile->Read(m_pMemory, dwSize) == dwSize)
		{
			if (CreateTabOffset())
				nResult = true;
		}
	}
	if (!nResult)
		Clear();
	return nResult;
}