| 2018/03/24(Sat) 11:47:03 編集(投稿者)
> 説明しにくいので、修正前.tbl 修正後.tbl を添付しました。 > > 修正前.TBLの内容 > 山田さんは 3種目、 > 上田さんは 1種目、 > 佐藤さんは 2種目 > 鈴木さんは 3種目 以上9行使用しています > これを > 修正後.TBLのように > 山田さんは 1行 > 上田さんは 1行 > 佐藤さんは 1行 > 鈴木さんは 1行 > 参加者で1行にまとめたいのですが、2行だったら、#直前値 を使用してできるのですが、3行の場合の方法がみつからなくて。
今回は3種目ですが、将来は4種目だったりそれ以上だったりするかもしれません。
だから、3種目限定で 修正前.tbl から 修正後.tbl を一気に作成するよりも、
タブ区切りのテキストデータを作成する方が応用が利きます。
添付ファイルを解凍して、
氏名別種目タブ区切りテキスト出力.cmd を実行して、
修正後.tbl で 氏名別種目タブ区切りテキスト.txt を読み込んでください。
区切りはタブですので何もしなくてもそのまま読み込めます。
<参考>
**氏名別種目タブ区切りテキスト出力.cmd
印字終了 印字開始 #一括パス名 + "氏名別種目タブ区切りテキスト.txt"
表 "修正前.tbl" 並べ替え { [氏名]昇順 }
ジャンプ 行番号 = 先頭 ┌繰り返し ( .not #eof ) │ │ 手続き実行 prc同名処理( [氏名] ) /* これは[ジャンプ 行番号 = 次行]と等価 */ │ └繰り返し終了
印字終了
シェル実行 #一括パス名 + "氏名別種目タブ区切りテキスト.txt" /* 結果の確認 */
終了 /* 一括処理終了 */
手続き定義開始 prc同名処理( 文字列 &氏名 ) 変数宣言 自動,整数{ &cnt }
&cnt = 1 ┌繰り返し ( &氏名 = [氏名] ) │ │ 手続き実行 prcテキスト出力( &cnt, &氏名, [種目], [距離] ) /* 印字 &氏名, _09, &種目, _09, #str( &距離 ), */ │ │ &cnt = &cnt + 1 │ ジャンプ 行番号 = 次行 └繰り返し終了
印字 _13, _10, /* 改行 CR LF */
手続き定義終了
手続き定義開始 prcテキスト出力( 整数 &cnt, 文字列 &氏名, 文字列 &種目, 数値 &距離 )
┌if ( &cnt = 1 ) │ │ 印字 &氏名, _09, &種目, _09, #str( &距離 ), /* 改行しない */ ├else │ │ 印字 _09, &種目, _09, #str( &距離 ), /* 改行しない */ └end
手続き定義終了
|