Google
オフコン練習帳内を検索
インターネット全体を検索

NECオフコン関連
オフコン一般
情報

ソート実行例4

●逆順でソート&特定のレコードを抽出&出力フィールドの構成変更(レコード長の異なるファイルへ出力)

以下の条件でDATA50という名前のレコード長50バイトのファイルにソート結果を出力します。
「品番」をキーにして逆順でソート
「品番」と「何かのコード1」を比較して、「品番」の方が大きいか等しいレコードだけを選択
「何かのコード1」「品名」「品番」の順番でレコード出力する。レコードの最後に”XY”という固定文字を追加する。

ソート前(ファイル名:DATA80)

0005カラーテレビ                            00500000A0005                       
0850ラジオ                                  00001800A0100                       
0003ステレオ                                00045000A0015                       
0010簡易掃除機                              00000300B0250                       
1000洗濯機                                  00180000B0008                       
0500トースター                              00005000C0040                       
0006テレビ                                  00010000A0009                       
ソート後(ファイル名:DATA50)

0008洗濯機                                  1000XY                              
0100ラジオ                                  0850XY                              
0040トースター                              0500XY                              
0005カラーテレビ                            0005XY                              

●操作方法

実行例1でも説明した部分は簡略して、重要部分のみ説明していますので、必要に応じて実行例1も参照してください。

RUNコマンド入力行で、「#SORT;」と入力して「ENTERキー」を押します。



ユーティリティ#SORTが起動されました。

SRTパラメータは、バッチ化する時に利用します。今回はバッチ化しないので、何も入力せずに「ENTER」キーを押します。



最初は入出力ファイルや使用する作業ファイルなどを入力します。
今回の例では、入力ファイル側のパラメータのIDEはMSD002、ICIは何も入力しない、IFIはDATA80、出力ファイル側のパラメータのODEはMSD002、OCIは何も入力しない、OFIはDATA50、作業ファイルのパラメータのIFOはPROTECT、WKDはTEMPORARYとしました。
WSZパラメータは、WKD=TEMPORARYとした時にだけ表示されるパラメータです。
今回の例のようなデータの場合は省略可能なので、何も入力せずに「ENTER」キーを押します。

今までの例では、ヒストリリスト(結果リスト)を出力していなかったので、今回の例では画面にヒストリを出力してみましょう。画面にヒストリを出力するには、LSTパラメータにYESを入力し、PRDパラメータにSTNと入力します。(PRNxxxとすれば、プリンタにも出力できます。)

SAVパラメータは、今回の例ではNOを選択しました。




NXTパラメータは、何も入力せずに「ENTER」キーを押します。



今回の例では、フロッピーディスクは使用しないのでNOVパラメータは省略、同一キーは無いのでDKYパラメータはNOとします。

ここがこの例で重要なところです。
KEYパラメータでは、ソートに使用するキーを入力します。
ソートするキーは1つで、1バイト目から4バイト分の数字項目で逆順なので、(1,4,N,D)と入力します。



ここも重要なところです。
OUTパラメータには、レコードに出力したい順番に(何バイト目から,何バイト分)と入力していきます。
今回の例では「(54,4),5,40,(1,4),(@XY@)」と入力しています。レコードの先頭に54バイト目から4バイト分のフィールドの情報、次に5バイト目から40バイト分(品名)、次に1バイト目から4バイト分(品番)、最後に2バイトのXYという文字列(固定文字を入れる場合は@で囲む)という順番で、レコード出力します。



SUMパラメータ、TOTパラメータ、ALTパラメータは、今回は特に変更しません。何も入力せずに「ENTER」キーを押します。

次も重要なところです。
「品番」と「何かのコード1」を比較して、「品番」の方が大きいか等しいレコードだけを選択抽出するので、SELパラメータは、入力が必要です。「品番」は1バイト目から4バイト分、「何かのコード1」は54バイト目から4バイト分、大きいか等しいはGEなので、(1,4,N,GE,54,4)と入力します。




ここまで入力は終了です。自動的にソートが開始されます。
そしてソートが終了すると「ソート処理が終了しました」と一瞬表示されます。



先ほど、ヒストリリストを画面に出力するよう指定したので、最後にヒストリリストが出力されます。
見終わったら、「RESET」キーを押します。そうすると#SORTは終了します。