2011-05-26 195 views
1

我已将PascalScript引擎包含到我的软件中。我的用户现在想为这个引擎编写一整套脚本,并希望知道是否可以通过includeuses命令包含其他脚本。PascalScript包括其他脚本的每个用途或包含命令

他想要做的是写一个脚本,其中包含各种常量/变量和另一个执行逻辑的脚本。最后他希望将常量包含在他的逻辑脚本中。

我希望这是明确的足够理解。

+0

JVCL JvInterpreter允许您使用其他单位,并且可以从文件中读取它们,如果它更符合您的需要,可以尝试使用它。 – 2011-05-26 14:28:39

+0

谢谢你的提示沃伦。我发现pascal脚本的解决方案见下文 – 2011-05-26 15:13:55

回答

2

我发现了,继承人该怎么做: 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; 
0

(请修正你的问题的标题)

我不能完全肯定,但据我所知Pascalscript没有“文件”的概念。在将它们传递给解释器之前,您可以简单地将两个部分连接起来,或者让一个小预处理器查找{$ I}包含语句并查看要插入的代码。