我們在文本文件中包含一些數據,該文件作爲要在運行時讀取的自定義資源構建到我們的可執行文件中。這個文本文件的大小超過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'不會做任何事情。 –