(現在 過去ログ70 を表示中)

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

No10757,10760 の記事


■10757 / )  横のものを縦に
□投稿者/ 悲しげ -(2017/11/11(Sat) 13:03:10)
    では、No10756の通りすがりさんのリクエストにお応えして(^^;)
    但し、かなり別な話題に関することになるし、タイトルも「Re:余談」だと
    あまり好ましくないのでツリーとタイトルを改めます。
    題して「横のものを縦に」

    Aさん|(担当なし)               |
    Bさん|○○委員                |
    Cさん|▲▲委員/■■委員           |
    Dさん|○○委員/△△△委員/□□委員     |
    Eさん|◇◇委員/◎◎委員/●●委員/○○委員 |

    のデータを

     ・・・・
    Dさん|○○委員|
    Dさん|△△△委員|
    Dさん|□□委員|
    Eさん|◇◇委員|
    Eさん|◎◎委員|
    Eさん|●●委員|
    Eさん|○○委員|
     ・・・・
    のように縦長に展開します。
    これには幾つかの方法がありますが、
    No10160でも挙げた「印字」コマンドを使うのがシンプルで高速かと思うので
    一例として一括処理と表を添付で挙げておきます。

1510372990.zip
/8KB
返信 [メール受信/OFF] 削除キー/

■10760 / )  Re[1]: 横のものを縦に
□投稿者/ 悲しげ -(2017/11/12(Sun) 09:43:43)
    「印字」コマンド方式ではなく、編集表をパタパタ切り替えての「行追加」方式も
    挙げておきます。
    仮称「横→縦変換2.cmd」かな(使用する表は同前だからcmdはここにtxtだけで)。
    -----------------------
    変数宣言 長整数{&i},文字列{&値1,&値2}
    表 "横→縦a.tbl",表番号=1
    表 "横→縦b.tbl",表番号=2
    条件( .not #空ファイル) 行削除 *,圧縮 /*既存データに追記する場合は不要*/
    ジャンプ 行番号=終端          /*既存データに追記する場合は必要*/
    編集表 1
    ジャンプ 行番号=先頭 /*これは不要かも*/
    繰り返し
     &i=1,&値1=[あ]
     if([い]="" .or [い]="(担当なし)")  /*例外処理*/
      &値2=[い]
      編集表 2
      行追加 終了状態=&実行リターン,[あ]=&値1,[い]=&値2
     else
      繰り返し
       編集表 1
       &値2=#対応文字列([う],&i)
       条件(&値2="") 繰り返し中止
       編集表 2
       行追加 終了状態=&実行リターン,[あ]=&値1,[い]=&値2
       &i=&i+1
      繰り返し終了
     end
     編集表 1
     ジャンプ 行番号=次行
     条件(#eof) 繰り返し中止
    繰り返し終了
    終了 表 1
    編集表 2
    表形式編集 /*結果確認*/
    -----------------------
    試してみても「印字」コマンド方式に比べて別に遅いとは感じませんね(^^;)。
    だからどっちでもいいかも。
    実は「印字」コマンド方式は、去る前世紀に師匠Rose.C=いかすぱげってぃ氏
    に教わったものです。当時のマシン&DOS桐にあっては、もちろんデータ量にも
    よるのだが、速度差は感動的に歴然だったもんで。

返信 [メール受信/OFF] 削除キー/


Mode/  Pass/

HOME HELP 新規作成 新着記事 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -