如何遍历呢

解决方案 »

  1.   

    “CFile从文件尾开始读到tail数据”
    1.“tail” 是 个 字符串 ?
    2. 截取 tail 后的数据?
    3,找到 tail, 读取 位置
    4. 文件end 到 tail de 距离,就是 要截取的 长度。
      

  2.   

    read函数不是一个读一个buffer大小 我怎么找出文件中tail字符串呢????
     m_MPEGFile.Open(SongSelect, CFile::modeRead|CFile::typeBinary);
     ULONGLONG FileLen =  m_MPEGFile.SeekToEnd();//已经指向尾部了怎么找出tail字符串呢???
      

  3.   

    "read函数不是一个读一个buffer大小 我怎么找出文件中tail字符串呢"
    1. 可以 打开后 一次 读完。
    2. 如果 是 binary 文件 就要 搜索 buffer 中的 “tail”
    a. 从头到尾 先 找 ‘t', 
    b。找到 t 后 再看 后面 是不是 “ail”
      

  4.   

    晕,有具体代码吗?
     m_MPEGFile->Seek(150,CFile::end);
     TCHAR_ Buffer[256];
    m_MPEGFile->Read(Buffer,256); //从尾部开始读 150个字节 可以吗???代码怎么写???
      

  5.   

    短的话.全不读出到buff. 再处理.
      

  6.   

    先得到文件总大小.减去150.得到开始点seek之. 读150字节.ok
    然后把读到的150 逆序.就是结尾倒读150了
      

  7.   

    "//从尾部开始向前读 150个字节 可以吗???代码怎么写???"
    问题是 这 150 字节 里 有没有 “tail”,有的话 好说, 没有 的 话 怎么办?
      

  8.   


    移动文件指针(-150, 从结尾);
    读文件(buff, 150);   //从结尾出读150个字节
    逆序(buff);          //从结尾倒着读150个字节
      

  9.   

    逆序(buff);          //从结尾倒着读150个字节  //函数名??????
    移动文件指针(-150, 从结尾);
    读文件(buff, 150);   //从结尾出读150个字节
    逆序(buff);          //从结尾倒着读150个字节
      

  10.   

    试试://Find a string in a buffer:
    size_t FindStringInBuffer (char* buffer, char* search, size_t buffersize)
    {
    char* buffer0 = buffer; size_t len = strlen(search);
    bool fnd = false;
    while (!fnd)
    {
    fnd = true;
    for (size_t i=0; i<len; i++)
    {
    if (buffer[i]!=search[i])
    {
    fnd = false;
    break;
    }
    }
    if (fnd) return buffer - buffer0;
    buffer = buffer + 1;
    if (buffer - buffer0 + len >= buffersize) return -1;
    }
    return -1;
    }