Мой код IF-THEN не работает для второй итерации.Это связано с тем, что обработка jar требует некоторого времени для записи результата в output.txt.
Поскольку запись немного запаздывает, вторая итерация моего кода всегда будет читать предыдущее записанное значение в файле output.txt, чтобы передать его в IF-THEN.
Например, в 1-й итерации: output.txt -> 0.9888 twrite.txt -> msg: ok
2-я итерация: output.txt -> 0.5555 twrite.txt -> msg: ok
// IF-THEN все еще дает этот результат, который основан на предыдущей итерации.это должно быть сообщение: не в порядке.Как это <0,7 </p>
Мне нужна помощь, как решить эту проблему «задержки»?
HRESULT CButtonDemoBHO::onDocumentComplete(IDispatch *pDisp, VARIANT *vUrl){
ATLTRACE("CButtonDemoBHO::onDocumentComplete %S\n", vUrl->bstrVal);
WinHttpClient client(vUrl->bstrVal);
client.SendHttpRequest();
wstring httpResponseHeader = client.GetHttpResponseHeader();
wstring httpResponse = client.GetHttpResponse();
writeToLog(httpResponse.c_str());
if (isMainFrame(pDisp)){
m_normalPageLoad=false;
FILE *child = _popen("javaw -jar c:\\simmetrics.jar c:\\chtml.txt c:\\thtml.txt > c:\\output.txt", "r");
fclose(child);
char readnumber[10];
float f = 0;
FILE *file11 = fopen("c:\\output.txt","r");
char* p = fgets(readnumber,10,file11);
std::istringstream iss(p);
iss >> f;
if (f > 0.7)
{
wfstream file12 ("c:\\twrite.txt", ios_base::out);
file12 << "Msg: ok";
file12.close();
}
else
{
wfstream file12 ("c:\\twrite.txt", ios_base::out);
file12 << "Msg: not ok";
file12.close();
}
iss.clear();
fclose(file11);
return S_OK;
}
return S_OK;
}