有一个文件用于记录登录信息
文件使用结构体做的//.h
struct 
{
    BOOL bEnable;
    BOOL bAdmin;
    BOOL bOK;
}OO;//.cpp
...
OO oo;
oo.bEnable = 1;
oo.bAdmin = 0;
oo.bOK = 1;//每登录成功一次就将oo写入文件里面
//写入方式是
CFile logfile(_T("c:\\log.db"),CFile::modeCreate|CFile::modeNoTruncate|CFile::modeReadWrite|CFile::shareDenyWrite);
logfile.Write (&oo,sizeof(oo));
logfile.Flush ();
logfile.Close ();如何在读取的时候能够按照记录数逐条读取

解决方案 »

  1.   

    试试用这些语句:OO xx;
    logfile.Read(&xx, sizeof(OO));
    logfile.Seek(n*sizeof(OO));//跳到第n条记录
      

  2.   

    FILE *fp;
    fp = fopen("c:\\log.db","r");
    if(fp == NULL)
    {
    AfxMessageBox("找不到文件!");
    return;
    }int nFileSize = 0;//获得文件的大小
    while(!feof(fp))
    {
    fgetc(fp);
    nFileSize ++;
    }
    rewind(fp);char *pBuf = new char[nFileSize];
    fread(pBuf,1,nFileSize,fp);
    fclose(fp);OO *pOo = (OO*)pBuf;
    pOo->bEnable = .... ;//第一条记录pOo = (OO*)(pBuf + sizeof(OO));
    pOo->bEnable = ....; //第二条记录.........if(pBuf)
    {
    delete pBuf;
    pBuf = NULL;
    }
      

  3.   

    to bohut(伯虎) 
    又看到fopen,fwrite,fread了,真亲切我最讨厌CFile了。
      

  4.   

    to classrect(以前的号丢了,郁闷) 
    :)
      

  5.   

    上周五刚刚学会,用的很爽啊>>我最讨厌CFile了
    我也一样,以前用FILE *,现在用fstream,呵呵