首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

内存映射文件咋比较字符串啊该如何处理

2012-03-21 
内存映射文件咋比较字符串啊?以下是查到的内存映射代码1:如何向文件尾append一行数据2:如何查最后一行有没

内存映射文件咋比较字符串啊?
以下是查到的内存映射代码
1:如何向文件尾append一行数据
2:如何查最后一行有没有某字符串啊 比如有没有字符“2379”
请指教 谢谢先

  HANDLE hFile = CreateFile("d:\\signal.txt",GENERIC_READ | GENERIC_WRITE,FILE_SHARE_READ | FILE_SHARE_WRITE,NULL,OPEN_EXISTING,TRIBUTE_NORMAL,NULL);
  DWORD h;
  DWORD l = GetFileSize(hFile, &h);
  HANDLE hFilemap = CreateFileMapping(hFile,NULL,PAGE_READWRITE,0,100,NULL);
  LPVOID pVoid = MapViewOfFile(hFilemap, FILE_MAP_ALL_ACCESS, 0, 0, 0);
  char *Buf = (char*)pVoid;
  Buf[0] = 'G';
  }
   
  UnmapViewOfFile(pVoid);
  CloseHandle(hFileMap);
  // Remove trailing zero character added earlier.  
  SetFilePointer(hFile, h,l, NULL, FILE_BEGIN);
  CloseHandle(hFile);
 

[解决办法]

C/C++ code
// 内存匹配函数memfindchar *memfind(const char *buf, const char *tofind, size_t len){    size_t findlen = strlen(tofind);    if (findlen > len) {        return((char*)NULL);    }    if (len < 1) {        return((char*)buf);    }    {        const char *bufend = &buf[len - findlen + 1];        const char *c = buf;        for (; c < bufend; c++) {            if (*c == *tofind) { // first letter matches                if (!memcmp(c + 1, tofind + 1, findlen - 1)) { // found                    return((char*)c);                }            }        }    }    return((char*)NULL);}
[解决办法]
你是问字符串查找?

热点排行