forked from metin2/client
Solution refactoring and restructuring, removed Boost dependency, removed unused tools
This commit is contained in:
71
src/EterBase/FileLoader.h
Normal file
71
src/EterBase/FileLoader.h
Normal file
@ -0,0 +1,71 @@
|
||||
#pragma once
|
||||
|
||||
#pragma warning(disable:4786) // character 255 <20>Ѿ<D1BE>°<EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
|
||||
#include <windows.h>
|
||||
#include <vector>
|
||||
#include <map>
|
||||
|
||||
#include "Stl.h"
|
||||
|
||||
class CMemoryTextFileLoader
|
||||
{
|
||||
public:
|
||||
CMemoryTextFileLoader();
|
||||
virtual ~CMemoryTextFileLoader();
|
||||
|
||||
void Bind(int bufSize, const void* c_pvBuf);
|
||||
DWORD GetLineCount();
|
||||
bool CheckLineIndex(DWORD dwLine);
|
||||
bool SplitLine(DWORD dwLine, CTokenVector * pstTokenVector, const char * c_szDelimeter = " \t");
|
||||
int SplitLine2(DWORD dwLine, CTokenVector * pstTokenVector, const char * c_szDelimeter = " \t");
|
||||
bool SplitLineByTab(DWORD dwLine, CTokenVector* pstTokenVector);
|
||||
const std::string & GetLineString(DWORD dwLine);
|
||||
|
||||
protected:
|
||||
std::vector<std::string> m_stLineVector;
|
||||
};
|
||||
|
||||
class CMemoryFileLoader
|
||||
{
|
||||
public:
|
||||
CMemoryFileLoader(int size, const void * c_pvMemoryFile);
|
||||
virtual ~CMemoryFileLoader();
|
||||
|
||||
bool Read(int size, void* pvDst);
|
||||
|
||||
int GetPosition();
|
||||
int GetSize();
|
||||
|
||||
protected:
|
||||
bool IsReadableSize(int size);
|
||||
const char * GetCurrentPositionPointer();
|
||||
|
||||
protected:
|
||||
const char * m_pcBase;
|
||||
int m_size;
|
||||
int m_pos;
|
||||
};
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
class CDiskFileLoader
|
||||
{
|
||||
public:
|
||||
CDiskFileLoader();
|
||||
virtual ~CDiskFileLoader();
|
||||
|
||||
void Close();
|
||||
bool Open(const char * c_szFileName);
|
||||
bool Read(int size, void * pvDst);
|
||||
|
||||
int GetSize();
|
||||
|
||||
protected:
|
||||
void Initialize();
|
||||
|
||||
protected:
|
||||
FILE * m_fp;
|
||||
int m_size;
|
||||
};
|
||||
|
||||
typedef std::map<std::string, std::string> TStringMap;
|
Reference in New Issue
Block a user