1. ホーム
  2. スクリプト・コラム
  3. その他

FcScript V1.0 ヘルプファイル(説明書付き

2022-01-09 08:23:43

FcScriptはForcalとMForcalがサポートするスクリプトコントロールですので、Forcalの構文についてある程度の知識が必要です。FcScriptはForcalとMForcalをラップしているだけなので、Forcalを理解することはFcScriptを理解することになります。
1.1 FcScriptを使う理由
VBScript や JScript などのスクリプトでは遅いと感じるときに FcScript が必要になります。Forcalのレベル1関数の計算速度は、(C/C++)やFORTRANの50%程度で、レベル2関数の計算速度は若干落ちます。
FcScriptがサポートするWebページを閲覧することができます。
VBScript、JScriptなどのスクリプトの機能を拡張するためにCOMコンポーネントを設計したい場合、FcScriptの方が効率を下げずにForcal拡張ダイナミックライブラリを設計しやすい(COMコンポーネントで関数を呼ぶと時間がかかる)のでおすすめです。
FcScriptは、すべてのホストプログラムに対して、高速なスクリプト制御と無制限の拡張性を提供します。 また
Forcal、MForcal、OpenFcはSky SoftwareまたはHuawun Software Parkからダウンロードできますので、Forcalについてもっと知りたい方はそちらをご覧ください。
1.2 FcScriptの登録とログアウトの方法
FcScriptのダウンロード
上記のサイトが使えない場合は、My blog1 My blog2 で適当なサイトを探してダウンロードすることができます。
FcScriptを使用するには、Windowsに登録する必要があります。FcScriptはディスク上のどこにでも置くことができますが、FcScriptは自動的にこのフォルダー内のダイナミックライブラリーを探してロードするため、"c:㈳FcDll "というフォルダーに置くことをお勧めします。以下では、FcScriptと関連するすべてのダイナミックライブラリファイルが "c:㈳FcDll "フォルダにあることを前提に説明します。
FcScript.dllを登録します。Start->Run: regsvr32 c:\FcDllFcScript.dll
FcScript.dllをログアウトします。"Start"->"Run": regsvr32 /u c:\FcDllFcScript.dll
FcScriptの使用を中止する場合は、通常、まずFcScriptからログアウトし、その後「c:㈳FcDll」フォルダーを削除してください。c:⇄FcDll」フォルダを先に削除した場合は、レジストリクリーニングツールでレジストリをクリーンアップする必要があり、クリーンアップしなくても問題ない。
1.3 FcScriptがサポートするWebページへのアクセス
Web ページ 1 Web ページ 2 Web ページ 3 Web ページ 4
1.4 VBS ファイルを使った FcScript のデモ
以下のVBScriptファイルをvbsファイルとして保存し、デモを行います。
Set obj=CreateObject("FcScript.VBMForcal")を設定します。
dim FcStr, nModule, hModule, err1, err2, iErrCode
FcStr="(:x)=FcGet(&x),FcSet(x+11);" 'Forcalソースプログラム
MsgBox FcStr
iErrCode=obj.VBComModule (FcStr, nModule, hModule, err1, err2 ) 'Forcalソースプログラムをモジュールとしてコンパイルします。
If iErrCode=0 Then
err1=100.0
iErrCode=obj.VBSet(err1) '実数パラメータをFcScriptに転送する。
call obj.VBExeModule (hModule, CLng(0), CLng(0), CLng(0)) 'モジュールを実行します。
iErrCode=obj.VBGet(err1) 'FcScriptから実数パラメータを取得する。
MsgBox err1
エルセーヌ
MsgBox iErrCode
終了 If
セット obj=Nothing
1.5 Demonstrating FcScript with a web page
Save the following web code as an htm file for demonstration. You need to allow web access to the control to demonstrate it.
.
A simple example of FcScript

一个FcScript简单例子



{フォーム
入力 {を入力します。
入力 {を入力します。
{{br--------------------------------------------------------------------------------
2 FcScript 言語リファレンス [目次]
VBMForcalインタフェースには、以下の機能が実装されています。 全てのインターフェースパラメータはVARIANT型である。
2.1 VBMForcalインタフェースで実装されている機能
2.1.1 Forcalワークスペースの出入りを要求する: VBUseForcal(iUse)
この方式は当面使用しない。 どうしても使いたい場合は、MForcalのUseForcalという関数の説明をご覧ください。
2.1.2 ソースプログラムのコンパイル:VBComModule(FcStr,nModule,hModule,err1,err2)
ソースプログラム中の式を1つまたは複数のモジュールにコンパイルします。 サブモジュールは、ソースプログラムの中で#MODULE#と#END#で定義することができます。 つまり、#MODULE#と#END#の間にある式をサブモジュールとして定義しています。 モジュールにおいて、~で始まる式は正のモジュール番号式としてコンパイルされ、他のモジュールからアクセスすることができ、それ以外の式は負のモジュール番号式としてコンパイルされ、他のモジュールからアクセスすることはできない。
FcStr: ソースプログラムを指し示す文字列。
nModule: 複数のモジュールのうち、最小のモジュール番号を返す。 このパラメータは通常使用しない。 長い整数でなければならない!
hModule: モジュールの実行に使用されるモジュールへのハンドルを返す。 長い整数でなければならない!
err1、err2:コンパイルエラーの発生箇所を返す。 長い整数でなければならない! 現在、エラー位置が不正確です。ソースコードがすべて英語の場合、エラー位置は正確です。ソースコードに漢字がある場合、エラー位置は不正確です。
この関数は、コンパイルされたコードを返します。 戻り値は長整数!
詳しくはMForcalの関数ComModuleの説明をご覧ください。
2.1.3 プログラムの実行: VBExeModule(hModule,outl,outd,outc)
hModule: ソースプログラムのコンパイル時に取得したモジュールへのハンドル。 長い整数でなければならない!
outl, outd, outc: 通常、これら3つのパラメータはゼロに設定され、長い整数でなければなりません!
詳しくはMForcalのExeModule関数の説明をご覧ください。
2.1.4 モジュールの削除:VBDeleteModule(hModule)
hModule: ソースプログラムのコンパイル時に取得したモジュールへのハンドル。 長い整数でなければならない!
詳しくはMForcalのExeModuleという関数の説明をご覧ください。
2.1.5 フォーカルのダイナミックライブラリ拡張のロード:VBLoadDll(str)
FcStr: Forcal拡張ダイナミックライブラリの名前を含む文字列。
FcScriptでは、複数のForcal拡張ダイナミックライブラリをロードすることができます。Forcal拡張ダイナミックライブラリ名は、ダブルクォート"... "で囲まれています。 を二重引用符で囲んでください。 ダブルクォーテーション<"... "は無視する。... Forcal 拡張ダイナミックライブラリ内 >.
例:"FcData32", "d:\FcDll╱ofc32"
フォーカルエクステンションのダイナミックライブラリのロード順序に注意してください。
この機能は、"c:㈳FcDll "フォルダー内のダイナミックライブラリーを自動的にロードします。
2.1.6 FcScript バッファへのデータ転送:VBSet(Val)
FcScriptにはバッファがあり、VBScriptとバッファは相互にデータを転送することができます。 VBScript でこの関数を使用すると、Val データをそのバッファに転送し、関数が動作状態を返します。
現在,この関数がバッファに転送できるのは,長整数または倍精度実数のみである。 配列や文字列などのデータの転送は、後ほど追加する予定です。
Valが長整数であれば長整数バッファに,Valが倍精度実数であれば倍精度実数バッファに,というように転送される。 この関数の戻り値は、現在、転送されたデータ数です。
2.1.7 FcScript バッファからのデータ取得:VBGet(Val)
FcScriptにはバッファがあり、VBScriptとバッファは相互にデータを転送することができます。 VBScript でこの関数を使用し、バッファから Val にデータを転送し、動作状態を返します。
現在,バッファからValへの転送は長整数または倍精度実数のみであるが,将来的には配列や文字列などのデータも追加される予定である。
Valが長整数であればバッファ内の長整数データを取得し,Valが倍精度実数であればバッファ内の倍精度実数データを取得する,というように。 関数の戻り値は、現在、転送されたデータ数である。
2.1.8 Forcalの再初期化:ReInitForcal()
Forcalを最初にロードしたときの状態に戻す。
2.2 FcScriptにおけるForcの2次関数
2.2.1 FcScriptバッファへのデータ転送 [整数関数、実数関数]: FcSet(x1,x2,...) ...)
FcScriptでは、バッファがあり、バッファとForcalが相互にデータを転送できるようになっている。 Forcalのこの機能を使って、データx1,x2,...を転送することができます。... をこのバッファに追加した場合、この関数は常に0を返します。
整数式の場合は整数バッファに,実数式の場合は実数バッファにデータが転送される。
2.2.2 FcScriptバッファからのデータ取得 [整数関数、実数関数]: FcSet(&x1,&x2,...) ...)
FcScriptでは、バッファがあり、バッファとForcalが相互にデータを転送できるようになっている。 Forcalでこの関数を使うと、バッファからx1,x2,...にデータを転送することができます。... この関数は常に0を返します。
整数式の場合は整数バッファのデータを取得し,実数式の場合は実数バッファのデータを取得する。
--------------------------------------------------------------------------------
3 FcScriptのソースコード [目次]
筆者はcom, atl, webに詳しくないので、FcScriptのメンテナンスは困難ですが、この分野の専門家であれば、FcScriptのソースコードをダウンロードしてメンテナンスすることが可能です。
ダウンロード 1
上記のサイトが使えない場合は、My blog1 My blog2 で適当なサイトを探してダウンロードすることができます。