能力值:
( LV13,RANK:410 )
|
-
-
2 楼
以lpvoid读取整个文件或者是一定字节数,这取决于文件大小和你的决定。然后使用类型转换成pbyte,按逗号标记分割成字符串提交给过滤函数判定,若不需要删除,则写入新文件,若需要则跳过该字符串。如此循环至文件结束。
|
能力值:
( LV3,RANK:20 )
|
-
-
3 楼
//获取文件大小后,申请缓冲区后读取文件内容到缓冲区,然后使用ReplaceSubStr替换缓冲区中的指定字符,最后把缓冲区的内容写入文件即可
/*获取文件大小*/
FILE *pf = fopen(szFilter, "rb");
fseek(pf, 0, SEEK_END);
int iFileSize = ftell(pf);
char *pBuffer = new char[iFileSize+1];
memset(pBuffer, 0, iFileSize+1);
fseek(pf, 0, SEEK_SET);
/*替换指定字符串*/
BOOL ReplaceSubStr(char *pSource, const char *pOldStr, const char *pNewStr)
{
if (pSource==NULL
||pOldStr==NULL
||pNewStr==NULL)
{
return FALSE;
}
std::string newStr = pNewStr;
std::string oldStr = pOldStr;
std::size_t newStrLen = newStr.size();
std::size_t oldStrLen = oldStr.size();
std::size_t pos = 0;
std::string tempStr = pSource;
std::string::size_type newStrnewStrLen = newStr.length();
std::string::size_type oldStroldStrLen = oldStr.length();
while(true)
{
pos = tempStr.find(oldStr, pos);
if (pos == std::string::npos) break;
tempStr.replace(pos, oldStrLen, newStr);
pos += newStrLen;
}
strcpy(pSource, tempStr.c_str());
return TRUE;
}
|
能力值:
( LV3,RANK:20 )
|
-
-
4 楼
char buf[1024] = "about,do,esteblish,baby,";
ReplaceSubStr(buf, "do,", "");//执行后buf的内容是"about,esteblish,baby,"
|
|
|