Inno Setup LoadStringFromFile falha quando o arquivo é aberto em outro processo
Para verificar quando um banco de dados (SQL Anywhere) está ativado e pronto para receber solicitações, estou exibindo a janela de mensagem do banco de dados em um arquivo de log (texto) e, em seguida, tentando ler isso usandoLoadStringFromFile
, que eu procuro por texto específico usandoPos
. O problema é que isso falha (presumo) porque o arquivo está em uso.
Exec(strInstallPath + '\Bin32\dbeng17.exe', '-n ' + strEngineName + ' "' + strInstallPath + '\Database\Olympus.db" -n ' + strDatabaseName + ' -gdall -xtcpip -ti0 -c25p -ot "' + strTempPath + '\dbeng.log"', '', SW_HIDE,
ewNoWait, intResultCode);
if not LoadStringFromFile(strTempPath + '\dbeng.log', astrDatabaseEngineLog) then
begin
Log('Loading string from file failed.');
end;
Eu também tentei copiar o arquivo de log usandoFileCopy
e tente ler a partir da cópia do arquivo, masFileCopy
também falha.
if not FileCopy(strTempPath + '\dbeng.log', strTempPath + '\dbengcopy.log', False) then
begin
Log('File copy failed.');
end;
Existe alguma maneira de ler de um arquivo que está em uso ou de outra maneira para fazer isso?