ルーチン ユーティリティ

ルーチン ユーティリティは以下のものがあります:

%FL:ソース・プログラムの先頭にあるコメント行を表示します。

%RANDSTR:ランダムな文字列を生成します。

%RCE:テキスト文字列の出現するすべてを、ルーチン内の別のテキスト文字列またはルーチンのリストに置き換えます。

%RD:$ZROUTINES を通して利用可能なルーチン名をリストします。

%RI:ROファイルからGT.M形式の *.m ファイルにルーチンをロードします。

%RO:1つ以上のルーチンのMソースコードをターミナルやディスク・ファイルなどのシーケンシャル・デバイスに書き込みます。

%RSE:ルーチンまたはルーチンのリスト内のテキスト文字列が出現するたびに検索します。

%RSEL:Mルーチンを選択し、そのディレクトリと名前をローカル配列に配置します。

"%" 記号は、下記の見出しトピックのから意図的に削除されています。

%FL

%FL ユーティリティは、ソース・プログラムの先頭にあるコメント行を表示します。%FLはアルファベット順にルーチンを指定されたデバイスに書き込みます。出力デバイスがプリンシパル・デバイスでない場合、%FLは、出力デバイスにルーチンを書き込むときに、プリンシパル・デバイス上の各ルーチンの名前を表示します。

%FL は、%RSELを使用してルーチンを選択します。詳細は、 “ %RSEL” を参照してください。

プロンプト

Routine :(%RSELを使用して)ルーチンの名前を要求します; <RETURN>は選択を終了します。

Output Device: <terminal>:

ディスティネーション・デバイスを要求します。デフォルトではプリンシパル・デバイスになります。

%FLの例

例:

GTM>DO ^%FL
First Line Lister 
Routine: %D
%D
Current total of 1 routine.
Routine: %GS* 
%GSE %GSEL
Current total of 3 routines.
Routine: - %D
%D
Current total of 2 routines.
Routine: ?D
%GSE %GSEL
Routine: <RETURN>
Output Device: <RETURN>
Routine First Line Lister Utility
GT.M 21-MAR-2002 16:44:09 
%GSE
%GSE;GT.M %GSE utility - global search
;
%GSEL;
%GSEL;GT.M %GSEL utility - global select into a local array
;
;invoke ^%GSEL to create %ZG - a local array of existing globals, interactively
;
Total 5 lines in of 2 routines.
GTM>

この例では、%Dを選択して%GSEと%GSELを選択し、%Dの選択を解除します。この例は、Output Device:<ターミナル>:プロンプトで<RETURN>を入力するため、出力はプリンシパル・デバイスに送られます。

%RANDSTR

%RANDSTRはランダムな文字列を生成します。%RANDSTR の形式は次のとおりです:

%RANDSTR (strlen,charranges,patcodes,charset)

ランダムな文字列は、charset または charranges と patcodes によって定義されたアルファベットの長さstrlenです。

strlen:ランダムな文字列の長さ。

charranges:charset で定義されたアルファベットの範囲。デフォルトでは、charranges は、1:1:127 です。charranges は、FORループ範囲に使用されているのと同じ構文を使用します。たとえば、48:2:57 は、偶数小数点を、48:1:57,65:1:70 は、16進数を選択します。

patcodes:選択したコードと一致する文字に制限するために使用されるパターンコードを指定します。デフォルトでは、patcodes は、"AN" です。

charset:ゼロ以外の長さの文字列を指定します。指定すると、%RANDSTR は、charset の文字を使ってランダムな文字列を生成し、そうでなければ charranges と patcodes で指定されたアルファベットを取ります。charset の長さがゼロで、参照渡しの場合、%RANDSTR() は、charranges と patcodesで定義された文字のアルファベットに初期化します。指定しない場合、strlen のデフォルトは 8、charranges のデフォルトは 1:1:127、patcodes は、"AN" になります。

%RCE

%RCE ユーティリティーは、テキスト・ストリングのすべての出現を、ルーチンまたはルーチンのリスト内の別のテキスト・ストリングに置き換えます。

%RCE は、%RSELを使用してルーチンを選択します。詳細は、 “ %RSEL” を参照してください。

%RCE は、置換するテキスト文字列と置換文字列を入力するよう求めます。%RCEは大文字/小文字を区別してテキスト文字列を検索します。%RCEは、テキスト文字列またはその置換文字に<TAB>などの制御文字を指定すると、警告メッセージを発行します。%RCEは、左と右の矢印の間にテキスト文字列とその置換文字列を表示することで選択を確定します。矢印は、テキスト文字列またはその置換文字に含める可能性のある空白を強調表示します。

すべての変更の表示を選択するかどうかにかかわらず、%RCEは処理される各ルーチンの名前を表示し、置換およびルーチンの変更数を変更して処理を完了します。

プロンプト

ルーチン:変更するルーチンの名前を(%RSELを使用して)要求します。<RETURN>は選択を終了します。

Old string (古い文字列):置換される文字列を要求します。

New string (新しい文字列):置換文字列を要求します。

変更される行を表示しますか<YES> ?:

変更された行の前後のバージョンを出力デバイスに表示するかどうかを尋ねます。

Output Device: <terminal>:

ディスティネーション・デバイスを要求します。デフォルトではプリンシパル・デバイスになります。

ユーティリティのラベル

CALL:%ZRが定義されていない場合を除いて、ユーザーの対話操作なしで動作します。

入力変数

次の入力変数は、CALL^%RCE を呼び出すときにのみ適用されます。

%ZR:%RSELで提供または生成されたルーチンの配列を含みます。

%ZF:検索する文字列を含みます。

%ZN:置換文字列を含みます。

%ZD:変更の履歴を表示するデバイスを指定します。デフォルトはプリンシパル・デバイスです。デバイスがプリンシパル・デバイスでない場合は、デバイスを必ず開いてください。

%ZC:変更履歴を表示するかどうかを示す真理値。デフォルトは0(いいえ)です。

%RCEの例

例:

GTM>DO ^%RCE 
Routine Change Every occurrence 
Routine: BES*
BEST BEST2 BEST3 BEST4
Current total of 4 routines
Routine: <RETURN>
Old string:^NAME 
New string:^STUDENT
Replace all occurrences of:
>^NAME<
With
>^STUDENT<
Show changed lines <Yes>?: <RETURN>
Output Device: <RETURN>
/usr/smith/work/BEST.m
Was: S ^NAME=SMITH 
Now: S ^STUDENT=SMITH
Was: S ^NAME(1)=JOHN
Now: S ^STUDENT(1)=JOHN
/usr/smith/work/BEST2.m
/usr/smith/work/BEST3.m
Was: S ^NAME=X
Now: S ^STUDENT=X
Was: W ^NAME
Now: W ^STUDENT
/usr/smith/work/BEST4.m
Total of 4 routines parsed.
4 occurrences changed in 2 routines.
GTM>

この例では、文字列 "^NAME" を文字列 "^STUDENT" に変更するルーチンのリストを選択し、変更の履歴を表示します。

例:

GTM>DO ^%RCE
Routine Change Every occurrence
Routine: BES*
BEST BEST2 BEST3 BEST4
Current total of 4 routines
Routine: <RETURN>
Old String:<TAB> 
The find string contains control characters
New string: <RETURN>
Replace all occurrences of:
><TAB><
With:
><
Show changed lines <Yes>?: N
BEST BEST2 BEST3 BEST4
Total 4 routines parsed.
4 occurrences changed in 2 routines.
GTM> 

この例では、指定されたルーチンからすべての<TAB>キーを削除し、変更の表示履歴を抑制します。

%RD

%RD ユーティリティーは、現在の $ZROUTINES を通してアクセス可能なルーチン名をリストします。%RD は %RSELを呼び出し、%RSELを通してアクセス可能なルーチンを表示します。%RDを使用してルーチンを探します。

%RDは、ワイルドカード文字のアスタリスク(*)と疑問符(?)を受け入れます。ワイルドカードは通常の意味を持ち、アスタリスク(*)はフィールドまたはフィールドの一部を表し、疑問符(?)は最初の文字以外の1文字を表します。

2つのルーチン名の間のコロン(:) は、ルーチンの範囲を指定します。%RDは、現在の $ZROUTINES でアクセス可能なルーチン名のみを表示します。

各選択の後、%RDにはリストされているルーチンの総数が表示されます。

<RETURN>を押すと%RDが終了します。

プロンプト

Routine :リストするルーチンの名前を(%RSELを使用して)要求します。<RETURN>は選択を終了します。

ユーティリティのラベル

OBJ:現在の $ZROUTINES を通してアクセス可能なオブジェクト・モジュールをリストします。

LIB:現在の $ZROUTINESを通してアクセス可能なパーセント(%)ルーチンをリストします。

SRC:現在の$ZROUTINESでアクセス可能なソースモジュールを一覧表示します(%RDと同じ)。

%RD の例

例:

GTM>DO ^%RD 
Routine directory
Routine: TAXES
TAXES
Total of 1 routine
Routine:*
EMP FICA PAYROLL TAXES YTD
Total of 5 Routines
Routine: <RETURN>
GTM>

この例では、ルーチンTAXES および ワイルドカード(*)の入力を求める%RDが呼び出されます。%RDは、現在の $ZROUTINES を通してアクセス可能な5つのルーチンをリストします。

例:

GTM>DO OBJ^%RD 
Routine directory
Routine:*
EMP FICA
Total of 2 routines
Routine: <RETURN>
GTM> 

この例では、現在の $ZROUTINES によってアクセス可能なオブジェクト・モジュールのみをリストするラベルOBJを%RDに呼び出します。

例:

GTM>DO LIB^%RD 
Routine directory
%D %DATE %DH %G %GD %GSEL 
GTM> 

この例では、現在の$ZROUTINESを通してアクセス可能なすべての%ルーチンをリストするLIBラベルとともに%RDを呼び出します。

例:

[参考]GTM>DO OBJ^%RD 
Routine directory
Routine:*
EMP FICA
Total of 2 routines
Routine: <RETURN>
GTM> 

この例では、現在の$ZROUTINESを通じてアクセス可能なソース・モジュールのみをリストするSRCというラベルを付けて%RDを呼び出します。

%RI

%RI は、ANSI標準で記述されたシーケンシャル形式のMルーチンをGT.M形式の個々の .m ファイルに変換します。%RI を使用して、MのRO形式をGT.Mルーチンとしてアクセス可能にします。

プロンプト

Formfeedで区切られた<いいえ>?

行を改行(CR)ではなく改行文字で区切るかどうかを要求します。

Input Device: <terminal>:

Mルーチンを含むROファイルの名前を要求します。

出力ディレクトリ:

Mルーチンを出力するディレクトリの名前を要求します。

%RI の例

例:

GTM>DO ^%RI
Routine Input utility - Converts RO file to *.m files
Formfeed delimited <No>?<RETURN>
Input device: <terminal>: file.ro
Files saved from FILEMAN directory
GT.M 07-MAY-2002 15:17:54
Output directory: /usr/smith/work/
DI DIA DIAO DIAI DIB DIBI
Restored 753 lines in 6 routines.
GTM>

%RO

%ROユーティリティは、1つ以上のルーチンのMソース・コードを、ディスク・ファイルやプリンタなどのシーケンシャル・デバイスに書き込みます。.

%RO は、%RSELを使用してルーチンを選択します。詳細は、 “ %RSEL” を参照してください。

%ROは、ルーティンをアルファベット順に指定されたデバイスに書き込みます。%RO は、ルーチンをデバイスに書き込むときに各ルーチンの名前を表示します。

プロンプト

Routine :出力するルーチンの名前を(%RSELを使用して)要求します。<RETURN>は選択を終了します。

Output device: <terminal>:

ディスティネーション・デバイスを要求します。デフォルトではプリンシパル・デバイスになります。

Header label (ヘッダー・ラベル):2つのヘッダー・レコードの最初に配置するテキストを要求します。

Strip comments <No>?: ストリップコメント<いいえ> ?:

2つの隣接するセミコロンを持つコメント行以外のすべてのコメント行を削除するかどうかを尋ねます。

ユーティリティのラベル

CALL:%ZRが定義されていない場合を除いて、ユーザーの対話操作なしで動作します。

入力変数

次の入力変数は、CALL^%RO を呼び出すときにのみ適用されます。

%ZR:%RSELで提供または生成されたルーチンの配列を含みます。

%ZD:出力を表示するデバイスを指定します。デフォルトはプリンシパル・デバイスです。

%ROの例

例:

GTM>DO ^%RO
Routine Output - Save selected routines into RO file.
Routine: %D
%D
Current total of 1 routines.
Routine: -%D
%D
Current total of 0 routines.
Routine: BEST* 
BEST BEST1 BEST2 
Current total of 3 routines.
Routine: ?D
BEST BEST1 BEST2
Routine: <RETURN>
Output Device: <terminal>: output.txt
Header Label: Source code for the BEST modules.
Strip comments <No>?:<RETURN>
BEST BEST1 BEST2 
Total of 53 lines in 3 routines
GTM>

この例では、%D を選択範囲内で加算および減算し、次に "BEST" で始まるすべてのルーチンを追加し、現在の選択を確認します。The example sends output to the designated output file output.txt この例では、指定された出力ファイルoutput.txt に出力を送信します。%ROは、出力ファイルの先頭にラベルを表示します。ヘッダー・ラベルの最初のレコードは、プロンプトで入力したテキストです。ヘッダー・ラベルの2番目のレコードは、単語 "GT.M" と現在の日付と時刻で構成されています。

%RSE

%RSEユーティリティーは、ルーチンまたはルーチンのリスト内のテキスト文字列が出現するたびに検索します。

%RSEは%RSELを使用してルーチンを選択します。詳細は、 “ %RSEL” を参照してください。

テキスト文字列の%RSE検索では、大文字と小文字が区別されます。%RSEは、テキスト文字列に<TAB>などの制御文字を指定すると、警告メッセージを発行します。%RSEは、左と右の矢印の間にテキスト文字列を表示することによって選択を確定します。矢印は、テキスト文字列に含まれる空白を表示します。

%RSEは、検出された出現の数で処理を完了します。

プロンプト

Routine :検索するルーチンの名前を(%RSELを使用して)要求します。<RETURN>は選択を終了します。

Find string :検索する文字列を要求します。

Output device: <terminal>:

ディスティネーション・デバイスを要求します。デフォルトではプリンシパル・デバイスになります。

ユーティリティのラベル

CALL:%ZRが定義されていない場合を除いて、ユーザーの対話操作なしで動作します。

入力変数

次の入力変数は、CALL^%RSE を呼び出すときにのみ適用されます。

%ZR:%RSELで提供または生成されたルーチンの配列を含みます。

%ZF:検索する文字列を含みます。

%ZD:結果を表示するデバイスを指定します。デフォルトはプリンシパル・デバイスです。デバイスがプリンシパル・デバイスでない場合は、デバイスを必ず開いてください。

%RSEの例

例:

GTM>DO ^%RSE
Routine Search for Every occurrence 
Routine: BES*
BEST BEST2 BEST3 BEST4
Current total of 4 routines
Routine: <RETURN>
Find string:^NAME
Find all occurrences of: 
>^NAME<
Output device: <terminal>:
/usr/smith/work/BEST.m
S ^NAME=SMITH
S ^NAME(1)=JOHN
/usr/smith/work/BEST2.m
/usr/smith/work/BEST3.m
S ^NAME=X
W ^NAME
/usr/smith/work/BEST4.m
Total of 4 routines parsed.
4 occurrences found in 2 routines.
GTM>

この例では、指定された文字列を検索して検出する%RSEを呼び出します。出力デバイスは、テキスト文字列が出現するすべての行のターミナル表示を指定します。

例:

GTM>DO ^%RSE
Routine Search for Every occurrence
Routine: BEST
BEST
Current total of 1 routine
Routine: <RETURN>
Find string:^NAME 
Find all occurrences of: 
>^NAME<
Output Device: out.lis
BEST
GTM> 

この例では、^%RSEに、テキスト文字列が出現するすべての行を出力ファイル out.lis に書き込むよう指示します。

%RSEL

%RSELユーティリティはMルーチンを選択します。%RSELは、GT.M特殊変数$ZROUTINESで指定されたディレクトリを使用してルーチンを選択します。$ZROUTINESには、特定のGT.M関数がソース・ファイルとオブジェクト・ファイルの検索に使用するディレクトリの順序付きリストが含まれています。$ZROUTINES が定義されていない場合、%RSELは、現在のデフォルト・ディレクトリのみを検索します。他のGT.Mユーティリティは%RSELを呼び出します。

%RSELは、ルーチンの名前を入力するよう求めます。

%RSELは、ワイルドカード文字のアスタリスク(*)と疑問符(?)を受け入れます。ワイルドカードは通常の意味を持ち、アスタリスク(*)はフィールドまたはフィールドの一部を表し、疑問符(?)は最初の文字以外の1文字を表します。

2つのルーチン間のコロン(:)は範囲を指定します。

%RSELは、選択されたルーチンのローカル配列である読み書き変数 %ZR を作成します。各選択の後、%RSELは、%ZR内のルーチンの数を報告します。ルーチン名に先行するマイナス記号( - )またはアポストロフィ( ')文字は、そのルーチンを%ZR配列から削除します。疑問符(?)はオンライン・ヘルプを提供し、 "?D" は現在の配列内のルーチン名を表示します。

[注意] 注意

ローカル変数 %ZRSET が定義されている場合、%RSELは、出力情報をローカル変数%ZRではなくグローバル変数(^%RSET)に配置します。

プロンプト

Routine :ルーチンの名前を要求します; <RETURN>は選択を終了します。

ユーティリティのラベル

CALL:%ZRを再初期化せずに%RSELを実行します。

OBJ:オブジェクト・ファイルのみを検索します。

SRC:ソース・ファイルのみを検索します(%RSELと同じ)。

SILENT:%RSELの機能への非対話型(バッチ)アクセスを提供します。シンタックスは SILENT^%RSEL(pattern,label) で、pattern は、検索するルーチン名を指定する文字列です。label は "OBJ"、 "SRC"、"CALL"にすることができます。対話的に呼び出される場合、デフォルトで "SRC"の値は ^%RSEL に対応します。

入力変数

次の入力変数は、CALL^%RSEL を呼び出すときにのみ有効です。

%ZE:ファイル拡張子を含みます。通常、ソースファイルは .m 、オブジェクトファイルは .o です。

%ZR:入力として、変更するルーチンの既存のリストが含まれています。

%ZRSET:設定時に、%RSELにグローバル変数 ^%RSET に出力を要求します。

出力変数

%ZR:出力として、選択したルーチン名でインデックスされたディレクトリのリストが含まれます。

^%RSET($JOB) :入力変数 %ZRSET が設定されている場合、ローカル変数 %RD の代わりに出力グローバル変数^%RSETが使用されます。これは、ジョブ番号 $JOB と選択されたルーチン名によってインデックスされます。

%RSELの例

例:

GTM>DO ^%RSEL
Routine: TES*
TEST2 TEST3
Current total of 2 routines 
Routine: <RETURN>
GTM>DO OBJ^%RSEL
Routine:TEST?
Current total of 0 routines
Routine: <RETURN>
GTM>ZWRITE
%ZR=0

この例では、最初の3文字として "TES" で始まる2つのソース・ルーチンを選択します。次に、OBJラベルで%RSELを呼び出してオブジェクト・モジュールのみを選択します。OBJ^%RSEL は、TESTルーチンのオブジェクト・モジュールが存在しないため、%ZR=0 を返します。

例:

GTM>DO ^%RSEL
Routine: BES*
BEST BEST2 BEST3 BEST4
Current total of 4 routines
Routine: - BEST
BEST
Current total of 3 routines
Routine: ?D
BEST2 BEST3 BEST4 
Routine: 'BEST2
BEST2
Current total of 2 routines
Routine: ?D
BEST3 BEST4
Routine: <RETURN>
GTM>ZWRITE
%ZR=2
%ZR("BEST3")="/usr/smith/work/"
%ZR("BEST4")="/usr/smith/test/"
GTM>

この例では、アスタリスク(*)ワイルドカードを使用してルーチンを選択し、選択リストをカスタマイズする方法を示しています。%ZR には、異なるディレクトリの2つのルーチンが含まれています。

デフォルトでは、%RSEL は、拡張子が .m のソース・ファイルに %ZR の内容をもとにしています。

例:

GTM>DO ^%RSEL
Routine:BEST*
BEST2 BEST3
Current total of 2 routines 
Routine: <RETURN>
GTM>ZWRITE
%ZR=2
%ZR("BEST2")="/usr/smith/test/"
%ZR("BEST3")="/usr/smith/test/"

この例では、BEST2 と BEST3 の%ZR 配列を作成します。

例:

GTM>DO ^%RSEL
Routine:LOCK
LOCK
Current total of 1 routine
Routine: <RETURN>
GTM>ZWRITE 
%ZR=1
%ZR("LOCK")="/usr/smith/work/"
GTM>DO CALL^%RSEL
Routine:BEST*
BEST2 BEST3
Current total of 2 routines
Routine: <RETURN>
GTM>ZWRITE
%ZR=3
%ZR("BEST2")="/usr/smith/work/"
%ZR("BEST3")="/usr/smith/work/"
%ZR("LOCK")="/usr/smith/work/"
GTM>

この例では、%ZR 配列をLOCKとともに作成し、CALL^%RSELを使用してその配列に追加します。

例:

GTM>do SILENT^%RSEL("myroutine","OBJ")
GTM>ZWRITE
%ZR=1
%ZR("myroutine")="/usr/smith/work"

この例では、%RSELを非対話形式で呼び出し、SILENT^%RSELを使用して、"myroutine" の%ZR配列を作成します。

inserted by FC2 system