J
jxgxy
Unregistered / Unconfirmed
GUEST, unregistred user!
//最重要的数据结构 Is Here
//保证结构体占的内存大小为 7404字节 一个int型4字节 一个char型1字节
typedef struct STRUCT_TOOL_INFO {
int id;
char strName[32];
int att1;
int att2;
int att3;
int att4;
char str1[1088];
int att5;
int att6;
int att7;
int att8;
int att9;
char str2[4096];
char Temp[2148];
} TOOL_INFO;
//将文件内容读到内存中去(外部指定文件名)
BOOL CTblReadDlg::ReadFile(CString &strPathName)
{
BOOL RetVal = 0;
CFile FileManager;
TOOL_INFO * pCurInfo = NULL;
long iToolNum = 0;
CString strBuf = _T(""
CString strFileName = _T(""
long lToolNum = 0;
//简单判断是否有效文件名
if (strPathName.GetLength() < 4)
return RetVal;
//清空左边的列表框
m_ToolList.DeleteAllItems();
//判断文件名是否 NpcBase.tbl
strFileName = strPathName.Right(strPathName.GetLength() - strPathName.ReverseFind('//') - 1);
if (0 != strFileName.CompareNoCase("NpcBase.tbl"
&& IDYES != MessageBox("本程序只处理NpcBase.tbl, 确定打开所选文件?", "Tips", MB_YESNO|MB_ICONASTERISK))
return 0;
//在界面上显示文件名
GetDlgItem(IDC__FILENAME)->SetWindowText(strPathName);
//打开文件,准备读数据
RetVal = FileManager.Open(strPathName, CFile::modeRead|CFile::typeBinary);
if (!RetVal)
{
AfxMessageBox("打开文件失败!"
return RetVal;
}
//清空内存
SafeDelete();
//#####################################################################
//#####################################################################
//文件前4个字节表示个数
FileManager.Read(&m_lToolNum, 4);
//根据得到的个数分配内存 内存大小为 道具个数n*每个需要的内存
m_pToolInfo = new TOOL_INFO[m_lToolNum];
memset(m_pToolInfo, 0, m_lToolNum*sizeof(TOOL_INFO));
//将所有信息读入内存
FileManager.Read(m_pToolInfo, m_lToolNum*sizeof(TOOL_INFO));
//#####################################################################
//#####################################################################
//保证结构体占的内存大小为 7404字节 一个int型4字节 一个char型1字节
typedef struct STRUCT_TOOL_INFO {
int id;
char strName[32];
int att1;
int att2;
int att3;
int att4;
char str1[1088];
int att5;
int att6;
int att7;
int att8;
int att9;
char str2[4096];
char Temp[2148];
} TOOL_INFO;
//将文件内容读到内存中去(外部指定文件名)
BOOL CTblReadDlg::ReadFile(CString &strPathName)
{
BOOL RetVal = 0;
CFile FileManager;
TOOL_INFO * pCurInfo = NULL;
long iToolNum = 0;
CString strBuf = _T(""
CString strFileName = _T(""
long lToolNum = 0;
//简单判断是否有效文件名
if (strPathName.GetLength() < 4)
return RetVal;
//清空左边的列表框
m_ToolList.DeleteAllItems();
//判断文件名是否 NpcBase.tbl
strFileName = strPathName.Right(strPathName.GetLength() - strPathName.ReverseFind('//') - 1);
if (0 != strFileName.CompareNoCase("NpcBase.tbl"
&& IDYES != MessageBox("本程序只处理NpcBase.tbl, 确定打开所选文件?", "Tips", MB_YESNO|MB_ICONASTERISK))
return 0;
//在界面上显示文件名
GetDlgItem(IDC__FILENAME)->SetWindowText(strPathName);
//打开文件,准备读数据
RetVal = FileManager.Open(strPathName, CFile::modeRead|CFile::typeBinary);
if (!RetVal)
{
AfxMessageBox("打开文件失败!"
return RetVal;
}
//清空内存
SafeDelete();
//#####################################################################
//#####################################################################
//文件前4个字节表示个数
FileManager.Read(&m_lToolNum, 4);
//根据得到的个数分配内存 内存大小为 道具个数n*每个需要的内存
m_pToolInfo = new TOOL_INFO[m_lToolNum];
memset(m_pToolInfo, 0, m_lToolNum*sizeof(TOOL_INFO));
//将所有信息读入内存
FileManager.Read(m_pToolInfo, m_lToolNum*sizeof(TOOL_INFO));
//#####################################################################
//#####################################################################