.dat文件为纯二进制采样数据文件,其中含有顺序存储的整型采样数据,每个数据占4个字节,数据之间默认间隔为50毫秒哪个函数能读取以上格式的文件?请指点一下,谢谢

解决方案 »

  1.   

    下边是读取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();
      

  2.   

    思路:
    .dat一般都是用户自定义的数据格式
    只要按照File去读取就可以了,不过读的时候要按照当初写进去的格式读取,比如我的文件 开头的4字节存放文件大小,后面每4个字节存放 含有顺序存储的整型采样数据,然后每个数据之间空一个字节,那么你读取第一个数据就是从file的第5个字节开始读取4个字节出来,保存为你要的数据类型,然后再往后走一个字节,再读取4个,依次。和时间没有关系的。
      

  3.   

    FILE *fp=fopen("c:\\x.dat","rb");long tmp;fread(&tmp,sizeof(long),1,fp); //这就是读取一个数据
      

  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]);
    }
      

  5.   

    readPosition是控制读的位置
    如果一组数据有一个整形与时间 想读第i组数据 可以使用readPosition=(i-1)*(sizeof(int)+6*sizeof(WORD));