我已將PascalScript引擎包含到我的軟件中。我的用戶現在想爲這個引擎編寫一整套腳本,並希望知道是否可以通過include
或uses
命令包含其他腳本。PascalScript包括其他腳本的每個用途或包含命令
他想要做的是寫一個腳本,其中包含各種常量/變量和另一個執行邏輯的腳本。最後他希望將常量包含在他的邏輯腳本中。
我希望這是明確的足夠理解。
我已將PascalScript引擎包含到我的軟件中。我的用戶現在想爲這個引擎編寫一整套腳本,並希望知道是否可以通過include
或uses
命令包含其他腳本。PascalScript包括其他腳本的每個用途或包含命令
他想要做的是寫一個腳本,其中包含各種常量/變量和另一個執行邏輯的腳本。最後他希望將常量包含在他的邏輯腳本中。
我希望這是明確的足夠理解。
我發現了,繼承人該怎麼做: PascalScript編譯器的UsePreprocessor屬性需要設置爲true。如果是這樣,你現在可以使用下面的命令預處理:
{$ I FILENAME.TXT}
你也需要實現的東西,如下面的例子,我在網上找到的編譯器的OnNeedFile事件:
function TForm1.ceNeedFile(Sender: TObject; const OrginFileName: String;
var FileName, Output: String): Boolean;
var
path: string;
f: TFileStream;
begin
Path := ExtractFilePath(ParamStr(0)) + FileName;
try
F := TFileStream.Create(Path, fmOpenRead or fmShareDenyWrite);
except
Result := false;
exit;
end;
try
SetLength(Output, f.Size);
f.Read(Output[1], Length(Output));
finally
f.Free;
end;
Result := True;
end;
(請修正你的問題的標題)
我不能完全肯定,但據我所知Pascalscript沒有「文件」的概念。在將它們傳遞給解釋器之前,您可以簡單地將兩個部分連接起來,或者讓一個小預處理器查找{$ I}包含語句並查看要插入的代碼。
JVCL JvInterpreter允許您使用其他單位,並且可以從文件中讀取它們,如果它更符合您的需要,可以嘗試使用它。 – 2011-05-26 14:28:39
謝謝你的提示沃倫。我發現pascal腳本的解決方案見下文 – 2011-05-26 15:13:55