我们在文本文件中包含一些数据,该文件作为要在运行时读取的自定义资源构建到我们的可执行文件中。这个文本文件的大小超过700万个字符。从C++中非常大的文本文件资源中读取
我可以成功地搜索和查找出现在文本文件顶部附近的资源中的字符串,但是当试图搜索几百万个字符的字词时,strstr将返回NULL,表示无法找到该字符串。是否有可以存储在char *中的字符串文字的长度或可以存储在嵌入资源中的数据量的限制?代码如下所示
char* data = NULL;
HINSTANCE hInst = NULL;
HRSRC hRes = FindResource(hInst, MAKEINTRESOURCE(IDR_TEXT_FILE1), "TESTRESOURCE");
if(NULL != hRes)
{
HGLOBAL hData = LoadResource(hInst, hRes);
if (hData)
{
DWORD dataSize = SizeofResource(hInst, hRes);
data = (char*)LockResource(hData);
}
else
break;
char* pkcSearchResult = strstr(data, "NumListDetails");
if (pkcSearchResult != NULL)
{
// parse data
}
}
谢谢。
我猜这是在一个循环,否则'break'不会做任何事情。 –