Inno Setup LoadStringFromFile falla cuando el archivo está abierto en otro proceso
Para verificar si una base de datos (SQL Anywhere) está activada y lista para recibir solicitudes, estoy enviando la ventana del mensaje de la base de datos a un archivo de registro (texto) y luego intento leer esto usandoLoadStringFromFile
, que luego busco texto específico usandoPos
. El problema es que esto falla (supongo) ya que el archivo está en 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;
También he intentado copiar el archivo de registro usandoFileCopy
e intentar leer de la copia del archivo, peroFileCopy
También falla.
if not FileCopy(strTempPath + '\dbeng.log', strTempPath + '\dbengcopy.log', False) then
begin
Log('File copy failed.');
end;
¿Hay alguna forma de leer un archivo que está en uso u otra forma de hacerlo?