LabTalk と Origin C

次の表は、LabTalkスクリプトとOrigin Cプログラミングを比較したものです。

Origin C LabTalk
コンパイルの有無

はい

いいえ。コンパイル不要です。単純なコードを変更したりテストするのが簡単です。

内部Originオブジェクトへのアクセス

はい。LabTalkよりも詳細に制御できます。

はい。 一部制限があります。

大文字小文字の区別 (コマンドや変数)

区別あり

区別なし

関数やマクロの呼び出し

可能。関数の呼び出しはC言語の標準規則に従います。

可能。サポートしている表記に制限があります。

Labtalkマクロは、スクリプトを呼び出すコマンドのように使うことができます。

さらに、LabTalkにはスクリプトファイル(OGS)のセクションを呼び出す機能があります。これは簡単なテキスト引数を渡すことができます。

実行モード

Origin Cコードは関数でまとめられます。関数は、異なるタイプの引数を渡すことにより、標準的な方法で他のOrigin Cから呼び出すことができます。文字列、double型変数、vector型変数(データセット)にアクセスする関数は、スクリプトウィンドウ、LabTalkスクリプト、メニューコマンド、ツールバーボタンだけでなく、さまざまなOriginウィンドウ(グラフやワークシートなど)から呼び出すことができます。

LabTalkスクリプトは通常OGSファイル内のセクションでまとめられます。単にOGSファイル名を入力するだけで呼び出すことができます。 (セクションにはこの方法は使えません。run.sectionコマンドを使う必要があります。しかしほとんどのユーザーは、新たな方法としてファイル名を入力してファイル全体を呼び出しています。) また、LabTalkスクリプトは、スクリプトウィンドウに直接入力でき、そこから実行できます。さらに、メニューコマンドやツールバーボタン、さまざまなOriginウィンドウ(グラフやワークシートなど)と結びつけることができます。Origin C関数とXファンクションはLabTalkスクリプトから実行することができます。

変数型

あります。ポインターのような、すべての標準C言語のデータ型をサポートしています。組み込みのvectorおよびmatrixテンプレートがあります。Originオブジェクトへのオブジェクト指向アクセスをサポートしています。さらに、ツリーとXMLのオブジェクトもサポートしています。すべての変数は、利用する前に宣言する必要があります。

あります。スカラー(double, int , const), string, StringArray, Tree, Range変数が、さまざまなOriginオブジェクトへのアクセスをサポートしています。

変数のスコープ

すべての標準の C/C++ スコープが利用できます。

LabTalk変数には3つのクラスがあります。

プロジェクト変数

これらはOriginプロジェクト(OPJ)と一緒に保存されます。プロジェクトが閉じると、利用不可になります。

セッション変数

セッション変数は、現在のOriginセッション中で利用できます。つまり、一度セッション変数が定義されると、その変数は、Originアプリケーションが終了するか、変数を削除するまで、存在します。

ローカル変数

ローカル変数は、スクリプトの現在のスコープ内でのみ存在します。

制御構造

すべてのC言語形式の制御構造(if-else, switch, for, while, do-while, goto)をサポートしています。また、コレクションのすべてのメンバーを簡単に列挙できるforeachループもサポートしています。

LabTalkは、C言語のようなif-else文とswitch文をサポートしています。また、C言語のようなforループもサポートし、LabTalkのrepeatとloop制御構造もサポートしています。

Xファンクションのサポート

はい。

はい。

XファンクションはLabTalkから簡単に実行できます。新しいコマンドウィンドウは、オートコンプリート機能を含み、Xファンクションにアクセスすることをサポートしています。