Тема: Передача данных из Lua-скрипта в другую программу через файл
Вопрос был задан на форуме QUIK:
В скрипте lua происходит выгрузка данных в файл:
f=io.open(getScriptPath().."\\Sr\\".."Treids.txt","w")
f:write("sell")
f:close()
При обращении внешнего приложения на Delphi возникает ошибка - "файл занят другим процессом".
Вопрос - есть у кого-нибудь мысли по поводу того почему так происходит?
Проблема тут в том, что файл в Lua в данном случае открывается эксклюзивно на запись. Поэтому если в другом процессе читать файл "обычным образом", то файл, в который идет запись, будет недоступен, "занят другим процессом".
В частности, в данном случае автор вопроса пытался из Delphi читать файл следующим образом:
list:=TStringList.Create;
appdir:= ExtractFileDir(ParamStr(0));
str:=(appdir+'\Files\Rts\Stop.txt');
list.LoadFromFile(str);
//операции с данными
list.free;
Беда методе list.LoadFromFile(). Если посмотреть его исходники, то видно, что файл открывается просто на чтение, без указания доп. опций "чтения с общим доступом".