我往文件中写入了如下格式的日志信息:
"2003-2-1 12:33:21 打开数据库失败...."
"2003-2-3 02:43:08 更新成功"两条日志记录之间是以回车符隔开的. 现在要求我将某个时间以前的记录删除,请问大家怎么处理比较好啊!谢谢!

解决方案 »

  1.   

    读取文件到一个buffer,然后比较字符
      

  2.   

    record.txt2003-2-1 12:33:21 打开数据库失败....
    2003-2-2 02:43:08 更新成功
    2003-2-3 02:45:18 dosomething 9
    2003-2-4 02:45:18 dosomething 10
    2003-2-5 02:45:18 dosomething 11
    2003-2-6 02:45:18 dosomething 12
    2003-2-7 02:45:18 dosomething 13
    2003-2-8 02:45:18 dosomething 14
    2003-2-9 03:46:08 dosomething 15
    2003-2-10 02:47:08 dosomething 16
    2003-2-11 02:43:08 dosomething 17
    2003-2-12 02:43:38 dosomething 18
    2003-2-14 02:43:58 dosomething 19
    2003-2-17 02:43:08 dosomething 20
      

  3.   

    int intFindFlag = 0;
    int intRecFlag = 0;
    CString strWanted("");
    CString content;
    CString strDert; //删除strDest之前的所有记录
    strDert.Format("2003-2-6 02:45:18"); CFile fread;
    if(fread.Open("d:\\record.txt", CFile::modeRead) == 0) //record.txt为日志文件
    return 0;
    CArchive ar(&fread, CArchive::load); while(ar.ReadString(content))
    {
    intFindFlag = content.Find(strDert);
    if(intFindFlag != -1)
    {
    AfxMessageBox("haha,find it");
    intRecFlag = 1;
    }
    if(intRecFlag == 1)
    {
    strWanted += content;
    strWanted += '\r';
    strWanted += '\n';
    }
    }
    TRACE("%s", strWanted);
    ar.Close();
    fread.Close(); CFile fwrite;
    fwrite.Open("d:\\record.txt",CFile::modeCreate|CFile::modeWrite); 
    fwrite.Write(strWanted, strWanted.GetLength());
    fwrite.Close();