|
Packit |
c32a2d |
//
|
|
Packit |
c32a2d |
// __ __ __ __ __ __ __ __ __ __ __ __ __ __ __ __
|
|
Packit |
c32a2d |
// /_//_//_//_/\ /_//_//_//_/\ /_//_//_//_/\ /_//_//_//_/\
|
|
Packit |
c32a2d |
// \_/_//_/\\_\/ \_/_//_/\\_\//_/\\_\\_\\_\//_/\\_\\_/_/\/
|
|
Packit |
c32a2d |
// /_//_/\/ /_//_/\/ /_/\/ __ /_/\/ __ /_/\/
|
|
Packit |
c32a2d |
// /_//_/\/ /_//_/\/ /_//_//_/\ /_//_//_//_/\/
|
|
Packit |
c32a2d |
// /_//_/\/ /_//_/\/ /_/\\_\\_\/ /_/\\_\\_\\_\/
|
|
Packit |
c32a2d |
// __ /_//_/\/ __ /_//_/\/ /_/\/ __ __ /_/\/
|
|
Packit |
c32a2d |
// /_//_//_//_/\ /_//_//_//_/\ /_//_//_//_/\ /_/\/
|
|
Packit |
c32a2d |
// \_\\_\\_\\_\/ \_\\_\\_\\_\/ \_\\_\\_\\_\/ \_\/
|
|
Packit |
c32a2d |
//
|
|
Packit |
c32a2d |
//
|
|
Packit |
c32a2d |
// ..:: Interactive Internet Entertainment Platform ::..
|
|
Packit |
c32a2d |
//
|
|
Packit |
c32a2d |
// (C) 2000-2005, FAN YI PENG. ALL RIGHTS RESERVED
|
|
Packit |
c32a2d |
//
|
|
Packit |
c32a2d |
// ________________________________________________________________________________________________
|
|
Packit |
c32a2d |
//
|
|
Packit |
c32a2d |
/// @file IIEP_FileIn.H
|
|
Packit |
c32a2d |
/// @brief 文件输入接口类
|
|
Packit |
c32a2d |
// ________________________________________________________________________________________________
|
|
Packit |
c32a2d |
//
|
|
Packit |
c32a2d |
//
|
|
Packit |
c32a2d |
// _____________________________________
|
|
Packit |
c32a2d |
// | |
|
|
Packit |
c32a2d |
// | DATA |
|
|
Packit |
c32a2d |
// _____________________________|_____________________________________|____________________________
|
|
Packit |
c32a2d |
//
|
|
Packit |
c32a2d |
// __________
|
|
Packit |
c32a2d |
// __________________________________________| CONFIG |__________________________________________
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
#pragma once
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
// ____________________________________________ CONFIG ____________________________________________
|
|
Packit |
c32a2d |
//
|
|
Packit |
c32a2d |
// __________
|
|
Packit |
c32a2d |
// __________________________________________| HEADER |__________________________________________
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
#include <stdio.h>
|
|
Packit |
c32a2d |
#include <string>
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
#include <IIEP_Def.H>
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
// ____________________________________________ HEADER ____________________________________________
|
|
Packit |
c32a2d |
//
|
|
Packit |
c32a2d |
// __________
|
|
Packit |
c32a2d |
// __________________________________________| DEFINE |__________________________________________
|
|
Packit |
c32a2d |
//
|
|
Packit |
c32a2d |
// ___________
|
|
Packit |
c32a2d |
// ____/ CFileIn \_______________________________________________________________________________
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
namespace IIEP
|
|
Packit |
c32a2d |
{
|
|
Packit |
c32a2d |
/// @brief 文件输入接口类
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
class CFileIn
|
|
Packit |
c32a2d |
{
|
|
Packit |
c32a2d |
public:
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
CFileIn(void);
|
|
Packit |
c32a2d |
~CFileIn(void);
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
bool Open(const char *pcszFileName);
|
|
Packit |
c32a2d |
bool Open(const WORD *pcwsFileName);
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
void Close(void);
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
DWORD GetFileSize(void) const;
|
|
Packit |
c32a2d |
DWORD GetReadPosition(void) const;
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
bool Seek(long nOffset, long nOrigin = 0); // SEEK_SET = 0 SEEK_CUR = 1 SEEK_END = 2
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
bool Skip(long nOffset) { return Seek(nOffset, 1); }
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
DWORD Read(PVOID pDataBuffer, DWORD dwReadSize);
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
bool ReadB(BYTE &ucData)
|
|
Packit |
c32a2d |
{
|
|
Packit |
c32a2d |
return (1 == Read(&ucData, 1));
|
|
Packit |
c32a2d |
}
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
bool ReadW(WORD &wData)
|
|
Packit |
c32a2d |
{
|
|
Packit |
c32a2d |
return (2 == Read(&wData, 2));
|
|
Packit |
c32a2d |
}
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
bool ReadDW(DWORD &dwData)
|
|
Packit |
c32a2d |
{
|
|
Packit |
c32a2d |
return (4 == Read(&dwData, 4));
|
|
Packit |
c32a2d |
}
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
bool ReadInverseW(WORD &wData)
|
|
Packit |
c32a2d |
{
|
|
Packit |
c32a2d |
if (2 == Read(&wData, 2))
|
|
Packit |
c32a2d |
{
|
|
Packit |
c32a2d |
_asm
|
|
Packit |
c32a2d |
{
|
|
Packit |
c32a2d |
MOV ECX, wData
|
|
Packit |
c32a2d |
MOV AX, [ECX]
|
|
Packit |
c32a2d |
XCHG AH, AL
|
|
Packit |
c32a2d |
MOV [ECX], AX
|
|
Packit |
c32a2d |
}
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
return true;
|
|
Packit |
c32a2d |
}
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
return false;
|
|
Packit |
c32a2d |
}
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
bool ReadInverseDW(DWORD &dwData)
|
|
Packit |
c32a2d |
{
|
|
Packit |
c32a2d |
if (4 == Read(&dwData, 4))
|
|
Packit |
c32a2d |
{
|
|
Packit |
c32a2d |
_asm
|
|
Packit |
c32a2d |
{
|
|
Packit |
c32a2d |
MOV ECX, dwData
|
|
Packit |
c32a2d |
MOV EAX, [ECX]
|
|
Packit |
c32a2d |
BSWAP EAX
|
|
Packit |
c32a2d |
MOV [ECX], EAX
|
|
Packit |
c32a2d |
}
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
return true;
|
|
Packit |
c32a2d |
}
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
return false;
|
|
Packit |
c32a2d |
}
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
// --------------------------------------------------------------------------------------------
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
bool ReadAnsiLine(std::string &strLine);
|
|
Packit |
c32a2d |
bool ReadUnicodeLine(std::wstring &wstrLine, bool bBigEndian);
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
bool ReadAnsiString (char *pszBuffer, DWORD dwBufferLength);
|
|
Packit |
c32a2d |
bool ReadUnicodeString(WORD *pwzBuffer, DWORD dwBufferLength);
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
// --------------------------------------------------------------------------------------------
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
private:
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
CFileIn(const CFileIn &); // forbidden
|
|
Packit |
c32a2d |
CFileIn & operator = (const CFileIn &); // forbidden
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
#include <CORE/CORE_FileIn.H>
|
|
Packit |
c32a2d |
};
|
|
Packit |
c32a2d |
}
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
// ______ CFileIn _________________________________________________________________________________
|
|
Packit |
c32a2d |
//
|
|
Packit |
c32a2d |
// _______________
|
|
Packit |
c32a2d |
// ____/ Memory File \___________________________________________________________________________
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
namespace IIEP
|
|
Packit |
c32a2d |
{
|
|
Packit |
c32a2d |
bool CreateMemoryFile(PVOID pMemory, DWORD dwLength, const char *pcszFileName);
|
|
Packit |
c32a2d |
bool CreateMemoryFile(PVOID pMemory, DWORD dwLength, const WORD *pcwsFileName);
|
|
Packit |
c32a2d |
bool RemoveMemoryFile(const char *pcszFileName);
|
|
Packit |
c32a2d |
bool RemoveMemoryFile(const WORD *pcwsFileName);
|
|
Packit |
c32a2d |
void RemoveMemoryFile(void);
|
|
Packit |
c32a2d |
}
|
|
Packit |
c32a2d |
|
|
Packit |
c32a2d |
// ______ Memory File _____________________________________________________________________________
|
|
Packit |
c32a2d |
//
|
|
Packit |
c32a2d |
// ____________________________________________ DEFINE ____________________________________________
|
|
Packit |
c32a2d |
//
|
|
Packit |
c32a2d |
// ____________________________________________________________________________________ DATA ______
|
|
Packit |
c32a2d |
//
|
|
Packit |
c32a2d |
// ___________________________________________ FILE END ___________________________________________
|