回答箱 No.70-3: 任意順による文字列のSORTについて
    ◆ 質問箱 No.70 質問者: 西村 重幸  1998年02月 193号 P.17
        ◆ 質問箱 目次へ
No.70-3   任意順による文字列のSORTについて 回答者
  早瀬 壮一
1998年03月
194号 P.24
   ◆ No.70(1998年 2月号)の回答-3
▼  回答1
 この質問箱を提出された方は柔軟な発想を本分とするPIPSの特質を思う存分発揮させることを期待されたのではないかと感じました。
 PIPSは表の変形というか編集というか表を操作する機能が大変柔軟です。列を結合したり分割したりが自由に出来ます。質問の表の文字列を見て単列でSORTするとき文字のコード順になるものもその文字の前のスペースをコンピュータに認識させればスペースのコードを使うことが出来ます。そのためにはスペースの前に何かスペース以外のコードを置けばいいわけです。
 プログラムTEST1はCDの列と職名の列を結合して文字列を「31│   主幹」の様にしました。TEST2は質問のTEST1のプログラム通り行うとき職名の列を罫線と結合すれば期待したような結果が出ることを示しました。
 ただし質問にあった表は、左側の様に職名が6桁の範囲にあって、2文字の職名は間にスペースがあったものが、SORT後は右の表のようになります。質問の制限にはこの表示法について特に制限しているようではないのでとりあえずこれを一つの回答として報告します。


  *FMT:R1/4/5:F1/10/1/4/1/6/1

<TEST1> CJ;D;A;@職名;NF;J;4,6;SORT;;4;A;;;NF;R;L;H-2;;;;STOP;

<TEST2>
CJ;D;A;@職名;NF;J;5,6;SORT;;@CD;A/N;5;A;;;NF;R;L;H-2;;;;STOP;

▼  回答2
 いざとなれば、MPUかCUで、ある文字を別の文字に替えて置いて、又、元に戻す操作をしてもいいでしょう。CUで職名の文字を上位にしたいもの順にアルファベットの文字に替えてからSORTし、SORT終了後また元に戻します。
 下のような定義表でCU/Tを実行すればどのような並べ方でも可能です。

<TEST3>
CU/T;名簿;CU定義表/1;;SORT;@CD;A;@職名;A;;名簿;
CU/T;名簿;CU定義表/2;;STOP;


このページのTOPへ戻る