Используя DWScript, я не вижу очевидного способа проверки возвращаемого значения функции FileCreate.Как проверить возвращаемое значение функции DWScript FileCreate?
Пример (не работает) Сценарий:
function TestFileCreate : Boolean;
var
F : File;
begin
F := FileCreate('MyTestFile.txt');
Result := (F = -1); // Not working!
Result := (F.Handle = -1); // Not working!
end;
Выписка из DWScript исходного кода:
procedure TFileCreateFunc.DoEvalAsVariant(const args : TExprBaseListExec; var result : Variant);
var
h : THandle;
i : IdwsFileHandle;
begin
h:=FileCreate(args.AsFileName[0]);
i:=TdwsFileHandle.Create(h);
Result:=IUnknown(i);
end;
Как вы можете видеть, внутренне, Delphi CreateFile называется и значение результата -1 при он не работает. Это числовое значение преобразуется в IdwsFileHandle.
Я принимаю решение «как есть», но я предпочел, чтобы проверяемое возвращаемое значение, как и исходная функция FileCreate. – fpiette
Хммм, я, вероятно, поменю на это и добавлю недостающий материал, повышение исключения может вызвать регрессии в текущем коде (ранее исключение было поднято при попытке использовать файл, и люди, возможно, поставили try..except вокруг этого, а не Open/Create) –