Utilizzando DWScript, non vedo un modo ovvio per controllare il valore restituito della funzione FileCreate.Come verificare il valore di ritorno della funzione FileCreate di DWScript?
Esempio (non funzionante) script:
function TestFileCreate : Boolean;
var
F : File;
begin
F := FileCreate('MyTestFile.txt');
Result := (F = -1); // Not working!
Result := (F.Handle = -1); // Not working!
end;
Estratto dal DWScript codice sorgente:
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;
Come si può vedere, internamente, Delphi CreateFile viene chiamato e il valore del risultato -1 quando fallisce. Questo valore numerico viene convertito in IdwsFileHandle.
Accetto la soluzione "così com'è" ma ho preferito avere un valore restituibile testabile proprio come la funzione FileCreate originale. – fpiette
Hmmm, probabilmente lo cambierò e aggiungerò le cose mancanti, l'aumento dell'eccezione potrebbe causare regressioni nel codice corrente (in precedenza l'eccezione veniva sollevata quando provavo ad usare il file, e le persone potrebbero aver provato try..except in giro piuttosto che l'apertura/creazione) –