PascalScript エンジンをソフトウェアに組み込みました。私のユーザーは、このエンジン用の一連のスクリプト全体を作成したいと考えており、include
またはコマンドによって他のスクリプトを含めることができるかどうかを知りたuses
がっています。
彼がやりたいことは、あらゆる種類の定数/変数を保持する 1 つのスクリプトと、ロジックを実行する別のスクリプトを作成することです。最終的に、彼は定数をロジック スクリプトに含めたいと考えています。
これで十分に理解できたと思います。
PascalScript エンジンをソフトウェアに組み込みました。私のユーザーは、このエンジン用の一連のスクリプト全体を作成したいと考えており、include
またはコマンドによって他のスクリプトを含めることができるかどうかを知りたuses
がっています。
彼がやりたいことは、あらゆる種類の定数/変数を保持する 1 つのスクリプトと、ロジックを実行する別のスクリプトを作成することです。最終的に、彼は定数をロジック スクリプトに含めたいと考えています。
これで十分に理解できたと思います。
PascalScript コンパイラの UsePreprocessor プロパティを true に設定する必要があります。その場合は、次のプリプロセッサ コマンドを使用できます。
{$I ファイル名.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 } インクルード ステートメントを検索し、コードを検索して挿入することができます。
条件定義をPS_USESSUPPORT
and に設定した場合、OnFindUnknownFile
イベントでは、pas ファイルの内容を出力文字列にロードする必要があります。
次に、「Uses XYZ;」を使用できます。