随便找个能创建文件的函数,实现写入读出不就行了,比如:FILE *fopen( const char *filename, const char *mode );其中mode使用"b",也即二进制模式用fread,fwrite执行读出写入.

解决方案 »

  1.   

    void CJqbDoc::SaveJqbFile(CString FileName)
    {
    short count,count1,i,TmpLength;
    CFile file;
    BOOL YN = file.Open (FileName, CFile::modeCreate|CFile::modeWrite| CFile::typeBinary);
    if(!YN)
    {
    AfxMessageBox("不能打开文件 "+FileName);
    return;
    } else
    {
    TmpLength=MyJqb.testdate.GetLength();
    if (TmpLength>16) TmpLength=16;
    file.Write(MyJqb.testdate,TmpLength);
    TmpLength=MyJqb.GongCheng.GetLength();
    if (TmpLength>16) TmpLength=16;
    file.Seek(16,CFile::begin);
    file.Write(MyJqb.GongCheng,TmpLength);
    file.Seek(80,CFile::begin);
    count=short(MyJqb.JqbArr.GetSize());
    file.Write(&count,sizeof(short));
    count1=short(MyJqb.DiArr.GetSize());
    file.Write(&count1,sizeof(short));
    file.Write(&MyJqb.KongShen,sizeof(float));
    file.Write(&MyJqb.JianJu,sizeof(float));
    file.Write(&MyJqb.KongJu,sizeof(float));
    file.Write(&MyJqb.BanChang,sizeof(float));
    file.Seek(512,CFile::begin);
    for (i=0;i<MyJqb.DiArr.GetSize();i++)
    file.Write(&MyJqb.DiArr.GetAt(i),sizeof(DiChengOne));
    file.Seek(4096,CFile::begin);
    for (i=0;i<MyJqb.JqbArr.GetSize();i++)
    file.Write(&MyJqb.JqbArr.GetAt(i),sizeof(JqbOne));
    file.Close();
    }
    }