7

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 に変換されます。

4

1 に答える 1