ソート実行例3
- ●昇順でソート&出力フィールドの構成変更
-
最初の4桁の数字(品番)を元に昇順にソートして、レコードの構成を({品番、品名、値段、何かのコード1、何かのコード2、FILLER}から{品名、FILLER、品番、値段、何かのコード1、何かのコード2}の順番に)変更して出力してみます。
ソート前(ファイル名:DATA80) 0005カラーテレビ 00500000A0005 0850ラジオ 00001800A0100 0003ステレオ 00045000A0015 0010簡易掃除機 00000300B0250 1000洗濯機 00180000B0008 0500トースター 00005000C0040 0006テレビ 00010000A0009
↓ ソート後(ファイル名:DATA10) ステレオ 000300045000A0015 カラーテレビ 000500500000A0005 テレビ 000600010000A0009 簡易掃除機 001000000300B0250 トースター 050000005000C0040 ラジオ 085000001800A0100 洗濯機 100000180000B0008
- ●操作方法
-
実行例1とほとんど同じで、SELパラメータが異なるだけです。
実行例1でも説明した部分は簡略していますので、必要に応じて実行例1も参照してください。
RUNコマンド入力行で、「#SORT;」と入力して「ENTERキー」を押します。
ユーティリティ#SORTが起動されました。
SRTパラメータは、バッチ化する時に利用します。今回はバッチ化しないので、何も入力せずに「ENTER」キーを押します。
最初は入出力ファイルや使用する作業ファイルなどを入力します。
今回の例では、入力ファイル側のパラメータのIDEはMSD002、ICIは何も入力しない、IFIはDATA80、出力ファイル側のパラメータのODEはMSD002、OCIは何も入力しない、OFIはDATA10、作業ファイルのパラメータのIFOはPROTECT、WKDはTEMPORARYとしました。
WSZパラメータは、WKD=TEMPORARYとした時にだけ表示されるパラメータです。
今回の例のようなデータの場合は省略可能なので、何も入力せずに「ENTER」キーを押します。
LSTパラメータは、今回の例ではNOを選択しました。
SAVパラメータは、NOとしました。
NXTパラメータは、何も入力せずに「ENTER」キーを押します。
今回の例では、フロッピーディスクは使用しないのでNOVパラメータは省略、同一キーは無いのでDKYパラメータはNOとします。
ここがこの例で重要なところです。
ソートに使用するキーを入力します。
ソートするキーは1つで、1バイト目から4バイト分の数字項目で昇順なので、(1,4,N)と入力します。
ここも重要なところです。
OUTパラメータには、レコードに出力したい順番に(何バイト目から,何バイト分)と入力していきます。
今回の例では「(5,40),(58,23),(1,4),(45,8),(53,1),(54,4)」と入力しています。レコードの先頭に5バイト目から40バイト分のフィールドの情報(即ち品名)、次に58バイト目から23バイト分(FILLER)、次に1バイト目から4バイト分(品番)・・・という順番で、レコード出力します。
SUMパラメータ、TOTパラメータ、SELパラメータ、ALTパラメータは、今回は特に変更しません。何も入力せずに「ENTER」キーを押します。
ここまで入力は終了です。自動的にソートが開始されます。
そしてソートが終了すると「ソート処理が終了しました」と一瞬表示されて、#SORTが終了します。