前へ | 次へ | 目次 | 索引 |
1 つのファイル内の 2 つの異なる部分を同時に表示するには,SPLIT WINDOW コマンドを使用します。SPLIT WINDOW コマンドは,画面を分割して,2 つの同じウィンドウを作成します。カーソルはバッファ内の同じ場所に置かれますが,下のウィンドウにしか現れません。どちらのウィンドウのステータス・ラインにも,同じバッファ名が表示されます。
大きなファイルの 2 つの異なる部分を同時に表示すれば,ファイル内で効率的にテキストを移動することができます。ファイル内のある部分のテキストを選択および削除して,もう一方の部分に挿入できます。カーソルをもう一方のウィンドウに移動するには,NEXT WINDOW コマンドを使用します。
2 番目のウィンドウを画面から削除して,現在のウィンドウを編集領域いっぱいに拡大するには,Do キーを押して ONE WINDOW コマンドを入力してから,Enter キーを押します。
8.18.10 2 つのバッファの編集
次の手順は,異なるファイルを含む 2 つのバッファの編集方法について説明しています。
手順 | 操作 |
---|---|
1 | SPLIT WINDOW コマンドを入力して,画面上に 2 つのウィンドウを作成する。 画面が 2 つに分割され,2 つのウィンドウが作成される。カーソルはバッファ内の同じ場所に置かれるが,下のウィンドウにしか現れない。各ウィンドウの強調表示されたステータス・ライン内には,同じバッファ名が表示される。 |
2 | GET FILE,OPEN,または OPEN SELECTED のうちいずれかのコマンドを使用して,2 番目のファイルを現在のウィンドウに表示する。 今まで編集セッション中に作成したバッファを現在のウィンドウに表示するには,BUFFER コマンドと表示バッファの名前を入力する。 ターミナルの画面には,2 つの異なるバッファが表示される。一方のバッファ内のテキストを選択および削除して,もう一方のバッファに挿入できる。もう一方のウィンドウにカーソルを移動するには,NEXT WINDOW コマンドを入力する。 |
8.19 サブプロセスの作成
サブプロセスを作成すれば,編集セッションを終了せずに,EVE 編集セッションと DCL コマンド・レベルとの間を切り替えることができます。サブプロセスを作成するには,SPAWN コマンドを入力します。SPAWN コマンドは,現在の編集セッションを中断して新しいサブプロセスにターミナルを接続します。ターミナル画面には,DCLプロンプト($)が現れます。
8.19.1 SPAWN コマンドの使用
サブプロセスは主に,Mail ユーティリティを起動したり,画面指向のプログラムを実行するために生成しますが,任意の OpenVMS ユーティリティを起動したり,DCL コマンドを実行することもできます。
編集セッションに戻るには,DCL コマンドの LOGOUT を入力して,サブプロセスからログアウトします。編集セッションが再開され,カーソルは,サブプロセスを生成する前に置かれていた位置に現れます。SPAWN コマンドのパラメータに DCL コマンドを指定すれば,特定のサブプロセスを生成できます。
次の例では,Mail ユーティリティが EVE から生成されます。
[End of file] Buffer: MAIN | Write | Insert | Forward Command: SPAWN MAIL |
画面には,Mail ユーティリティのプロンプト(MAIL>)が現れます。Mail を終了すると,自動的にサブプロセスからログアウトされ,編集セッションが再開されます。
8.19.1.1 DCL から EVE へのサブプロセスの生成
DCL を使用するためにサブプロセスを生成する代わりに,EVE の編集セッションを実行するためにサブプロセスを生成して,親の DCL プロセスにアタッチすれば,DCL コマンドとユーティリティを使用できます。
DCL コマンド・レベルに戻りたいときは,EVE コマンドの ATTACH を使用して親プロセスに戻ります。
編集セッションを再開するには,DCL コマンドのATTACH にサブプロセス名(SMITH_1)を指定して実行し,編集サブプロセスに再接続します。編集セッションが再開され,カーソルが親プロセスにアタッチする前に置かれていた位置に現れます。次に例を示します。
次の例では,DCL コマンド SPAWN を使用してサブプロセスが生成されます。SPAWN コマンドは SMITH_1 というサブプロセスを生成します。サブプロセス・レベルで EVE が起動され,編集セッションが実行されます。編集セッションの最後に ATTACH コマンドが入力され,DCL に戻ります。その後,編集セッションを再開するには,サブプロセス SMITH_1 をプロセス名として使用して,DCL コマンド ATTACH を入力します。
$ SPAWN %DCL-S-SPAWNED, process SMITH_1 spawned %DCL-S-ATTACHED, terminal now attached to process SMITH_1 [End of file] Buffer: MAIN | Write | Insert | Forward Command: ATTACH SMITH $ ATTACH SMITH_1 |
本章では,OpenVMS の Sort/Merge ユーティリティ(SORT/MERGE)の使用方法について説明します。Sort/Mergeユーティリティは,次の 2 種類の作業を実行します。
Alpha システムでは,高性能 Sort/Merge ユーティリティ を選択することもできます。このユーティリティでは,Alpha アーキテクチャを活用することにより,ほとんどの Sort 操作および Merge 操作で性能を向上させることができます。詳細は 第 9.1 節 を参照してください。
本章では,次のことを説明します。
その他の情報については,次のマニュアルを参照してください。
Alphaシステムでは,高性能Sort/Mergeユーティリティ を選択することもできます。このユーティリティでは,Alphaアーキテクチャを活用することにより,ほとんどの Sort 操作および Merge 操作で性能を向上させることができます。
高性能 Sort/Merge ユーティリティは,SORT/MERGE と同じコマンド行インタフェースを使用します。高性能 Sort/Merge ユーティリティと SORT/MERGE との違いについては,本章で紹介します。
高性能 Sort/Merge ユーティリティを使用するときは,論理名 SORTSHR を使用します。次のように SORTSHR を定義して,SYS$LIBRARY にある高性能ソート実行可能プログラムを指定します。
$ define sortshr sys$library:hypersort.exe |
SORT/MERGE に戻るときは,SORTSHR の割り当てを解除します。SORTSHR が定義されていない場合,SORT/MERGE ユーティリティが省略時の値として設定されます。
メモリ割り当ての差分により,高性能 Sort/Merge ユーティリティで実行するときの性能は,Sort/Merge ユーティリティと同サイズの仮想メモリで実行可能なソート操作数と同数の操作回数に制限されることがあります。 この場合,プロセスに使用できる仮想メモリのサイズを増やすか,ワーキング・セットの範囲を減らします。システム・パラメータにより,仮想メモリのサイズ増加やワーキング・セット範囲の削減については,『 OpenVMS システム管理ユーティリティ・リファレンス・マニュアル』を参照してください。 |
高性能 Sort/Merge ユーティリティの動作は,ほとんど SORT/MERGE ユーティリティの動作と同じです。相違点は,表 9-1 に示します。
サポートされていない修飾子を使用しようとしたり,サポートされていない値を修飾子に指定しようとしたりすると,高性能 Sort/Merge ユーティリティはエラーを表示します。
キー・データ・タイプ | H-FLOATING および ZONED 10 進データ・タイプはサポートされていません。 BINARY データ・タイプ・キーのサイズは,1 バイト,2 バイト,4 バイト,8 バイトのいずれかでなければなりません。16 バイトのバイナリ・キーはサポートされていません(これは OpenVMS Alpha の将来のリリースでサポートされる予定です)。 |
照合順序 | NCS(National Character Set)照合順序はサポートされていません(これは OpenVMS Alpha の将来のリリースでサポートされる予定です)。/COLLATING_SEQUENCE 修飾子に NCS 照合順序を指定しないでください。ASCII,EBCDIC,および MULTINATIONAL 照合順序はサポートされています。省略時の設定は ASCII です。 指定ファイルを使用して,照合順序を定義したり変更したりすることはできません(これは OpenVMS Alpha の将来のリリースで解決される予定です)。 |
指定ファイル | 指定ファイルはサポートされていません(これは OpenVMS Alpha の将来のリリースでサポートされる予定です)。/SPECIFICATION 修飾子は使用しないでください。 |
内部ソート・プロセス | レコードのソート・プロセスのみサポートされています(これは OpenVMS Alpha の将来のリリースで解決される予定です)。/PROCESS=RECORD 修飾子を指定することも,または /PROCESS 修飾子を省略することもできます。/PROCESS 修飾子で TAG,ADDRESS,および INDEX を指定しないでください。 |
統計情報 |
現在サポートされているのは次の統計情報です。
Records read(読み込まれたレコード数) 次の統計情報は利用できません。 Internal length(内部長) この機能の完全な実装は将来の OpenVMS Alpha リリースで行われる予定です。 |
ファイルをソートするときは,DCLのSORTコマンドを使用します。ソートする入力ファイルを複数指定するときは,それぞれのファイルをコンマで区切り,最終的に作成されるソート済みの出力ファイルの名前をその後に続けます。
オプションとして,ソートに使用する各フィールドのキーを指定することができます。それぞれのキーには,次の情報が含まれます。
キーを指定しないでソートを行う場合,キーが1つだけ存在しており,このキー・フィールドが次のようになっているものと想定されます。
次の 2 つの例は,省略時のキーが使用されています。
$ SORT NAMES.LST BYNAME.LST |
このコマンドは,図 9-1 に示すように,出力ファイル BYNAME.LST を作成します。
図 9-1 昇順にソートした結果
$ SORT NAMES.LST,NAMES2.LST BYNAME.LST |
すべての SORTの修飾子の一覧については,第 9.9 節 を参照してください。
9.2.1 キーの定義
キーを定義するときは,/KEY 修飾子を使用します。複数のキーを指定するときは,それぞれのキーごとに /KEY 修飾子を使用します。
表 9-2 は,キーを構成する5つの要素について説明しています。
キー要素 | 値 | 説明 | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
キーの位置 | POSITION:n | レコード内にあるキー・フィールドの 1 バイト目の位置を表す。レコードの 1 バイト目が 1 になる。POSITION:n は必ず指定しなければならない。 | |||||||||||||||
キー・サイズ | SIZE:n |
キー・フィールドの長さを表す。浮動小数データの場合を除き,SIZE:n は必ず指定しなければならない。
キーに指定するデータ型により,サイズを指定するときに受け付けられる値が決まる。次の表は,それぞれのデータ型に対応する値と,キーのサイズを指定するときに使用する単位を表す。
10進データでは,10進記号が別のバイトに格納される場合,そのバイトはデータのサイズにカウントされない。 指定したキーがレコードの終わりを越えた場合,失われた文字は空文字として扱われる。 |
|||||||||||||||
データ型 | CHARACTER | 文字データ。CHARACTERが省略時のデータ型になる。 | |||||||||||||||
BINARY |
バイナリ・データ。
SIGNED---符号付きバイナリ・データまたは符号付き10進データ。バイナリ・データおよび10進データの場合,SIGNEDが省略時の値になる。 UNSIGNED---符号なしバイナリ・データまたは符号なし10進データ。 |
||||||||||||||||
F_FLOATING | F_FLOATING形式のデータ。 | ||||||||||||||||
D_FLOATING | D_FLOATING形式のデータ。 | ||||||||||||||||
G_FLOATING | G_FLOATING形式のデータ。 | ||||||||||||||||
H_FLOATING | VAXシステムでは,H_FLOATING形式のデータになる(現在,高性能 Sort/Merge ユーティリティではサポートされていない)。 | ||||||||||||||||
S_FLOATING | Alphaシステムでは,IEEE S_FLOATING形式のデータになる。 | ||||||||||||||||
T_FLOATING | Alphaシステムでは,IEEE T_FLOATING形式のデータになる。 | ||||||||||||||||
DECIMAL |
10進データ。
TRAILING_SIGN---後続符号10進データ。10進データの場合,TRAILING_SIGNが省略時の値になる。 LEADING_SIGN---先行符号10進データ。先行符号はフィールドの最初になければならず,フィールドの残りのスペースにはゼロが埋め込まれる。 OVERPUNCHED_SIGN---オーバパンチ10進データ。10進データの場合,OVERPUNCHED_SIGNが省略時の値になる。 SEPARATE_SIGN---分割符号10進データ。 |
||||||||||||||||
ZONED | ゾーン10進データ(現在,高性能 Sot/Merge ユーティリティではサポートされていない)。 | ||||||||||||||||
PACKED_DECIMAL | パック10進データ。 | ||||||||||||||||
ソート順 | ASCENDING | ソート操作を,英数字の昇順でソートする。ASCENDINGが省略時の順序になる。 | |||||||||||||||
DESCENDING | ソート操作を,英数字の降順でソートする。 | ||||||||||||||||
キーの優先順位 | NUMBER:n | 複数のキーが優先順位に従ってリストされていない場合,それぞれのキーの優先順位を指定する。1 〜 255 までの値が指定できる。 |
キー・フィールドのデータが文字データでない場合は,データ型を指定する必要があります。Sort/Merge ユーティリティでは,次のデータ型が認識されます。
BINARY, [SIGNED] |
BINARY, UNSIGNED |
CHARACTER |
DECIMAL, LEADING_SIGN, SEPARATE_SIGN [SIGNED] |
DECIMAL, LEADING_SIGN, [OVERPUNCHED_SIGN, SIGNED] |
DECIMAL [,SIGNED, TRAILING_SIGN, OVERPUNCHED_SIGN] |
DECIMAL, [TRAILING SIGN], SEPARATE_SIGN, [SIGNED] |
DECIMAL, UNSIGNED |
D_FLOATING |
F_FLOATING |
G_FLOATING |
H_FLOATING |
S_FLOATING, IEEE(Alpha システムのみ) |
T_FLOATING, IEEE(Alpha システムのみ) |
PACKED_DECIMAL |
ZONED |
[ ] かっこ内の項目は省略時の値になるため,指定する必要はありません。
10 進文字列データの場合,VAX システムや Alpha システムと違って,Sort/Merge ユーティリティが,入力文字列の無効な桁について報告します。VAX システムの場合,比較のために無効な桁(または予約オペランド)が有効な 10 進文字列に変換されたというメッセージが表示されます。Alpha システムの場合,Sort/Merge ユーティリティによって同じ変換が行われますが,メッセージが表示されません。どちらの場合も,入力ファイルのデータがそのまま出力ファイルに記述されます。 |
各レコードが (1) 部門名,(2) アカウント番号,(3) 従業員名の 3 つのフィールドから構成される EMPLOYEE.LST ファイルを例として考えてみます。図 9-2 にこの 3 つのフィールドを示します。
図 9-2 リストの中のレコード・フィールド
前へ | 次へ | 目次 | 索引 |