任务描述:通过线程方式读取给出的二进制文件数据,二进制文件的所有数据均按定义的结构体进行固定长度存储,按照给定的结构体定义进行文件信息的载入与解析显示。
这里读取时就按照结构体的长度来读,每次从文件中读取sizeof(AIS_INFO)长度的数据,知道文件的末尾。还有当初查资料的时候,打开文件的Open函数的第二个参数,网上有的人加上了CFile::typeBinary,一开始我也按照网上的,加上这一句,但是每次读出来的数据都是乱码,去掉这一句显示就没问题了。
CFileException e;
CStdioFile file;
//打开文件
if(file.Open(_T("bin/1.dat"),CFile::modeRead,&e))
{
AIS_INFO* Ais_Info=new AIS_INFO();//定义结构体类型的指针变量
//读文件
while(file.Read(Ais_Info,sizeof(AIS_INFO))>0)
{
OnShowAIS(Ais_Info);//调用函数显示读取的数据
}
file.Close();
//释放请求的内存空间,防止内存泄漏
delete Ais_Info;
Ais_Info=NULL;
本人也正在学习MFC,若有什么表达的不对的地方请大神指教。在此把我练习中遇到的问题贴出来,希望对像我一样正在学习MFC的朋友有一点点