7
使用DWScript,我沒有看到明顯的方式來檢查FileCreate函數的返回值。如何檢查DWScript FileCreate函數的返回值?
實施例(不工作)腳本:從DWScript源代碼
function TestFileCreate : Boolean;
var
F : File;
begin
F := FileCreate('MyTestFile.txt');
Result := (F = -1); // Not working!
Result := (F.Handle = -1); // Not working!
end;
提取物:
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;
正如可以看到,在內部,德爾福的CreateFile被調用,結果值是-1時它失敗。該數值被轉換爲IdwsFileHandle。
我接受「按原樣」的解決方案,但我更喜歡有可測試的返回值就像原始的FileCreate函數一樣。 – fpiette
嗯,我可能會改變,並添加缺少的東西,引發異常可能會導致當前代碼退化(以前在嘗試使用該文件時引發異常,並且人們可能已經放置try..except而不是開放/創建) –