vc如何读取.dat文件数据 .dat文件为纯二进制采样数据文件,其中含有顺序存储的整型采样数据,每个数据占4个字节,数据之间默认间隔为50毫秒哪个函数能读取以上格式的文件?请指点一下,谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 下边是读取txt文件的源码,不能直接替换对不?我提取出来时乱码?是不是加密了? CStdioFile file; //打开文件 if (!file.Open("C:\\HW\\program\\HWReport_A.txt", CFile::modeRead))//|CFile::modeCreate|CFile::modeWrite { ::AfxMessageBox(_T("打开文件失败")); return; } CListBox* pListBox = (CListBox*)GetDlgItem(IDC_LIST); pListBox->ResetContent(); //读文件 CString strText = _T(""); while (file.ReadString(strText)) { pListBox->AddString(strText); } //关闭文件 file.Close(); 思路:.dat一般都是用户自定义的数据格式只要按照File去读取就可以了,不过读的时候要按照当初写进去的格式读取,比如我的文件 开头的4字节存放文件大小,后面每4个字节存放 含有顺序存储的整型采样数据,然后每个数据之间空一个字节,那么你读取第一个数据就是从file的第5个字节开始读取4个字节出来,保存为你要的数据类型,然后再往后走一个字节,再读取4个,依次。和时间没有关系的。 FILE *fp=fopen("c:\\x.dat","rb");long tmp;fread(&tmp,sizeof(long),1,fp); //这就是读取一个数据 CFile file;file.Open("D:\\data.dat",CFile::modeCreate | CFile::modeNoTruncate|CFile::modeReadWrite |CFile::typeBinary);void readData(UINT &id,CString &strDate)//读一个整形数 与时间{ WORD date[6];//时间 file.Seek(readPosition,CFile::begin); CArchive ar(&file,CArchive::load); ar>>id; ar>>date[0]>>date[1]>>date[2]>>date[3]>>date[4]>>date[5]; ar.Flush(); ar.Close(); strDate.Format("%d年%d月%d日%d时%d分%d秒",date[0],date[1],date[2],date[3],date[4],date[5]);} readPosition是控制读的位置如果一组数据有一个整形与时间 想读第i组数据 可以使用readPosition=(i-1)*(sizeof(int)+6*sizeof(WORD)); 窗体绘制鼠标坐标问题 急啊,组播问题??? 拦截数据包问题,帮忙看看,来者都有分 怎样编译CS代码? cin.getline()方法是做什么用的? 我的“打开”“另存为”窗口,为何之见文件夹,不见任何文件。CMyFileDialog exdlg(TRUE, "prj", NULL, OFN_HIDEREADONLY | OFN_OVERWR 如何为ListBox加入项? 在视类如何访问框架类变量 如何copy一个工程中的dialog资源到另外一个工程中? window任意文件右键菜单的问题 请问如何备份MSDN 2001 的收藏? 请教关于socket编程的send函数!(TCP)
CStdioFile file;
//打开文件
if (!file.Open("C:\\HW\\program\\HWReport_A.txt", CFile::modeRead))//|CFile::modeCreate|CFile::modeWrite
{
::AfxMessageBox(_T("打开文件失败"));
return;
}
CListBox* pListBox = (CListBox*)GetDlgItem(IDC_LIST);
pListBox->ResetContent(); //读文件
CString strText = _T("");
while (file.ReadString(strText))
{
pListBox->AddString(strText);
} //关闭文件
file.Close();
.dat一般都是用户自定义的数据格式
只要按照File去读取就可以了,不过读的时候要按照当初写进去的格式读取,比如我的文件 开头的4字节存放文件大小,后面每4个字节存放 含有顺序存储的整型采样数据,然后每个数据之间空一个字节,那么你读取第一个数据就是从file的第5个字节开始读取4个字节出来,保存为你要的数据类型,然后再往后走一个字节,再读取4个,依次。和时间没有关系的。
CFile file;
file.Open("D:\\data.dat",CFile::modeCreate | CFile::modeNoTruncate|CFile::modeReadWrite |CFile::typeBinary);
void readData(UINT &id,CString &strDate)//读一个整形数 与时间
{
WORD date[6];//时间
file.Seek(readPosition,CFile::begin);
CArchive ar(&file,CArchive::load);
ar>>id;
ar>>date[0]>>date[1]>>date[2]>>date[3]>>date[4]>>date[5];
ar.Flush();
ar.Close();
strDate.Format("%d年%d月%d日%d时%d分%d秒",date[0],date[1],date[2],date[3],date[4],date[5]);
}
如果一组数据有一个整形与时间 想读第i组数据 可以使用readPosition=(i-1)*(sizeof(int)+6*sizeof(WORD));