桐の釣魚大全のトップ > 整形ユーティリティ教書 基本編
トップページに戻る

鋭意校正中です。
念のためにブラウザでF5キーを押してリロードしてからお読みください。


整形ユーティリティ教書 基本編 ― 桐のアプリケーション開発を支援するユーティリティ

整形ユーティリティを使うときには、 パレット型ランチャーのフォーム名:utx_list3_launcher.wfm/wfx を開いてください。
ダウンロードしたファイルは、桐9 バージョンです。桐10 / 桐10s で使用する場合には、[桐コンバータ]で桐10ファイルに変換してください。

 
fig.0 パレット型ランチャー:utx_list3_launcher.wfm/wfx


 【整形ユーティリティ ダイアグラム】

 ┌───────────────┐
 │整形ユーティリティのランチャー│
 │               │
 └──┬────────────┘
    ↓
    ├───────┬────────┬────────┬────────┐
    ↓       ↓        ↓        ↓        ↓
 ┌──┴───┐┌──┴───┐┌───┴────┐┌──┴────┐┌──┴───────┐
 │整形を開く ││クイック検索││dirでゲットだぜ ││表の定義リスト││フォームの定義リスト│
 │      ││      ││        ││       ││          │
 └──┬───┘└──┬───┘└───┬────┘└───────┘└──────────┘
    ↓       ↓        ↓
 (1)〜(4)  [処理]でリンク [ファイル名]でリンク
 diff(1)〜(2)  ↓        ↓
    ↓       ↓        ↓
┌───┴───────┴────────┘
│       ┌────┐
│       │プリント│
│┌────┐┌────┐│┌────┐┌────┐
││テキスト││テキスト│┘│テキスト││クリップ│
││(WBS)││(手続き)│ │(結果) ││ボード │
│└────┘└────┘ └────┘└────┘
│  ↑     ↑      ↑     ↑ 
│  出力    出力     出力    出力
│  ↑     ↑      ↑     ↑ 
│┌────┐┌────┐ ┌────┐  ↑┌────┐
││手続き ││テキスト印刷│ │変数チェック│  ↑│字下げ │
││一覧  ││    │ │    │  ↑│設定  │
│└─┬┬─┘└─┬┬─┘ └─┬┬─┘  ↑└┬───┘
│  ↑↓    ↑↓     ↑↓     ↑ │
│  リンク※  リンク※   リンク※   ↑ │  ※[手続き名]でリンク
│  ↑↓    ↑↓     ↑↓     ↑ │
│ ┌┴┴────┴┴─────┴┴──────┴┐
└→┤    整形ユーティリティ      (1)│───┐
  │                      │(2)│───┐
  └─┬────────────────────┘   │(3)│───┐
    │ └──────────────────────┘   │(4)│──────┐
    │     └──────────────────────┘   │ diff(1)│──────┐
    │         └──────────────────────┘      │ diff(2)│
  ┌─┴────┐           └──────────────────────┘      │
  │整形エンジン│                  └──────────────────────┘
  │      │
  └──────┘
    ↑
    入力
    ↑
    ├─────────┬─────────┬─────────┐
    ↑         ↑         ↑         ↑
 ┌──┴───┐  ┌──┴───┐  ┌──┴───┐  ┌──┴───┐
 │イベント処理│┐ │一括処理  │┐ │テキスト  │┐ │K3ファイル │┐
 │      ││┐│      ││┐│      ││┐│      ││┐
 └──────┘││└──────┘││└──────┘││└──────┘││
  └──────┘│ └──────┘│ └──────┘│ └──────┘│
   └──────┘  └──────┘  └──────┘  └──────┘



 ┌───────────────┐
 │整形ユーティリティのランチャー│
 │               │
 └───┬───────────┘
     ↓
  ┌──┴─────┐
  │トレース出力整形│
  │を開く     │
  └──┬─────┘
     ↓
  ┌──┴───────────────────┐
  │トレース出力整形              │
  │                      │
  └──┬────────────┬──────┘
     │            │
  ┌──┴───┐      ┌─┴──┐
  │整形エンジン│      │テキスト印刷│
  │      │      │    │
  └──────┘      └────┘
     ↑            ↓
     入力           出力
     ↑            ↓
  ┌──┴─────────┐┌────┐
  │メモ帳にペーストして  ││テキスト│
  │メモ帳を閉じます    │└────┘┐
  │            │ │プリント│
  └────────────┘ └────┘
     ↑
  ┌──┴─────────┐
  │トレース出力ウィンドウの│
  │内容を右クリックして  │
  │コピーします      │
  └────────────┘

1 整形ユーティリティの概要

1.1 [字下げ]をするためのアプリケーション
 [ if ... else ... end]等の制御構造を[字下げ]して、読み易く書かれたプログラムは判り易い。
しかし、Win桐のイベント定義画面には制御構造を[字下げ]する機能がありません。
そこで、イベント処理( kev/kex ) を読み込んで自動的に整形して[字下げ]するのが[整形ユーティリティ]なのです。

 ただし、直接的にイベント処理( kev/kex ) を書き換えることはできませんので、
  ・クリップボードにコピー   … 行単位
  ・テキストファイルに書き出し … 手続き単位
 のどちらかの方法で、整形結果をイベント処理( kev/kex ) に反映することになります。

 すなわち、
行単位でクリップボードにコピーした場合には、イベント定義画面で[編集]→[貼り付け]で貼り付けます。
手続き単位でテキストファイルに書き出した場合には、イベント定義画面で[読み込み]→[テキスト]でテキストファイルを読み込みます。

 このように間接的な方法でしか整形結果をイベント処理( kev/kex ) に反映出来ないのが欠点ですが、
それでも[整形ユーティリティ]にはそのような欠点を補って余りある効果があります。

 ■字下げの設定

 [字下げのパラメータ]は4つあります。

 □ … 左インデント       ※1以上 デフォルト値は1
 
… ネスト(入れ子)の字下げ ※1以上 デフォルト値は1
 
× … ケース(条件)の字下げ  ※0以上 デフォルト値は1
 
… \ で継続する2行め以降  ※0以上 デフォルト値は1

 以下の例は、字下げを(目だ立たせて)判り易くするためにすべてのパラメータの値を2に設定しています。

 【表示】

 ダイアグラム(罫線)が表示されます。

 手続き定義開始 procedure( )

 □┌if ( 条件 )
 □│
△△・・・・・・・・・・・¥
 □│
△△○○・・・・・・・・・・
 □│
┌ケース開始
 □│
├──ケース ( 条件 )
 □│
××□□・・・・・・・・・
 □│
└ケース終了
 □└end

 手続き定義終了

 ※□△×○は、すべて全角空白文字です。


 【出力】
 ・クリップボードにコピー   … 行単位
 ・テキストファイルに書き出し … 手続き単位

 ダイアグラム(罫線)は出力しません。※テキストファイルに書き出す場合に限り、ダイアグラム(罫線)も出力できます。

 手続き定義開始 procedure( )

 □□if ( 条件 )
 □□
△△・・・・・・・・・・・¥
 □□
△△○○・・・・・・・・・・
 □□
△△ケース開始
 □□
△△××ケース ( 条件 )
 □□
△△××□□・・・・・・・・・
 □□
△△ケース終了
 □□end

 手続き定義終了

 ※□△×○は、すべて全角空白文字で出力されます。

 【引用】字下げ 出典: フリー百科事典『ウィキペディア(Wikipedia)』
  字下げ(じさげ、インデント、英: indentation)とは、「行頭に空白を設けて文字開始位置を他行よりも下がった位置から始めた文字組み」を指す用語である。
  ■概要
   多くのワープロソフトなどでは1文字以上のインデントを行う際にタブキーを使用し、またこの機能そのものを指して字下げ機能と称する。
  字下げ機能を自動的に行うソフトウェア機能を特にオートインデントと呼ぶ。
   段落の2行目以降を1行目より下げる形式を特に指してぶら下げインデントと呼び、
  プログラミング言語におけるソースコードを記述する際、その構造や属性を視覚的に明らかにするために行われる段組み表記方法でもある。
   詳細は「字下げスタイル」を参照

 【引用】字下げスタイル 出典: フリー百科事典『ウィキペディア(Wikipedia)』
  字下げスタイルまたはインデントスタイル(英: Indent style)とは、
  プログラミングにおいてプログラムの構造を明らかにするために、コードのブロックの字下げをどうするかを決めたものである。
  本項ではC言語やそれに類似した言語を主に扱うが、他のプログラミング言語(特に括弧を使用してブロックを記述する言語)にも適用可能である。
  字下げスタイルはプログラミング作法の一部である。
  ■その他
   ある状況では、ブロックの境界を見失う危険性が生じる。制御構造が複雑で何重にも入れ子になっているときに起きやすい。
  そのようなコードをスクロールしながら見ていて、制御構造のつながり方を見失うのである。


 fig.1 字下げ設定

1.2 行動ダイアグラム
 行動ダイアグラムは簡潔で曖昧さのないやり方で詳細なプログラム論理を描くことを可能にします。
行動ダイアグラムは Action Diagram(アクション・ダイアグラム)の訳語です。
行動ダイアグラムは、[実行制御]文の範囲を1つのまとまりとして角括弧でくくるというシンプルなものです。

 行動ダイアグラムを使用すると、
制御構造が複雑で何重にも入れ子になっている時でも、制御構造のつながり方を見失うことはありません。


 ■行動ダイアグラムの対象になる[実行制御]文

 ―if ... else ... end

 ┌if
 │
 │
 ├else
 │
 │
 └end


 ―繰り返し (条件) ... 繰り返し終了

 ┌繰り返し (条件)
 │
 │
 │
 └繰り返し終了


 ―ケース開始 ... ケース (条件) ... ケース終了

 ┌ケース開始
 ├─ケース (条件)
 │
 │
 ├─ケース その他
 │
 │
 └ケース終了


 ■行動ダイアグラムの対象になる[脱出命令]

 ―繰り返し中止( break )

 ┌繰り返し (条件)
 │
 │
 
←─繰り返し中止
 └繰り返し終了


 ―ケース中止( break )

 ┌ケース開始
 ├─ケース (条件)
 │
 
←──ケース中止
 │
 ├─ケース その他
 │
 │
 └ケース終了


 ―手続き終了( return )

 手続き定義開始 procedure( )



 
←手続き終了
 手続き定義終了


1.3 整形ユーティリティは印刷専用アプリケーションではない
 整形ユーティリティは印刷専用アプリケーションではありません。
もちろん、印刷機能は用意されていますが、それはメインの機能ではありません。
確かに、行数が多い手続きの場合などでは、印刷して机上で検討することが有効な場合がありますが、それは例外です。
紙を浪費する印刷は避けることをお勧めします。

 【引用】木を守る ― UNIXという考え方 ISBN4-274-06406-9 より
  「データを紙に印刷してしまったら、もうそれ以上操作できないんだぞ」と、上司は言った。
  紙に印刷されたデータは、並べ替えも、移動も、フィルタ処理も、変形も、修正もできない。
  少なくともコンピュータ上でやるように簡単にはできない。
   :
  動かせないデータは死んだも同然だと前にいったことを覚えているだろうか?
  紙に印刷されたデータも同じだ。
   :
  紙には気を付けることだ。それはデータの死亡証明書といっていい。


1.4 整形ユーティリティはテキストデータを出力するアプリケーションである
 整形ユーティリティはテキストデータを出力するアプリケーションです。

 ―行単位でクリップボードにコピーした場合には、
 ・イベント定義画面で[編集]→[貼り付け]で貼り付けます。

 ―手続き単位でテキストファイルに書き出した場合、
 ・イベント定義画面で[読み込み]→[テキスト]でテキストファイルを読み込みます。

2 整形ユーティリティはコンバータ
 整形ユーティリティはデータを変換するコンバータとして利用できます。
[入力→変換→出力]の流れを以下に示します。

                      ┌───┐
 【入力】          【変換】   │字下げ│            【出力】
                      │設定 │
 イベント処理( kev/kex ) ┐        └─┬─┘
             │ ┌────────┴────────────┐
 ライブラリ( cmd/cmx )  ┤ │                     │ ┌ クリッップボード
              ├→┤整形ユーティリティ(1)(2)(3)(4)├→┤
 テキスト ( txt )    ┤ │                     │ └ テキスト( txt )
              │ └─────────────────────┘ 
 K3   ( K3 )    ┘

 ―複数行のデータをクリップボードへコピーする
 整形ユーティリティの行を [Ctrl + クリック]または [Shift + クリック] すると行の色が紺色に変わります。
この状態で整形ユーティリティ本体の[クリップボードへコピー]ボタンを実行すると紺色の行のデータがクリップボードへコピーされます。
コピーが終了すると紺色のデータ行の色は元に戻ります。
クリップボードへコピーしたデータは桐のイベント編集画面・一括編集画面で貼りつけることができます。
一度にクリップボードへコピーできる文字数は、桐9-2012/桐9sでは最大4000文字まで、桐10/桐10sでは最大8000文字です。
一度に全部の行をコピーできない場合は、コピー終了後に残りの紺色の行の先頭へ自動的にジャンプします。
紺色になった行を解除するには [Ctrl + クリック]または [Ctrl + Shift + クリック] します。
※[Shift + クリック]/[Ctrl + Shift + クリック]は通常のWindowsの操作と異なる動作をします。ご了承下さい。

 ―テキストファイルを出力する
 [テキスト/印刷]ダイアログを開いて[テキスト]ボタンを実行すると[テキストの保存]ダイアログが開きます。
任意のテキストファイル名を指定して[保存]ボタンを実行してください。


 fig.2 ファイルを開く


 fig.3 クリップボードへコピーする


 fig.4 テキストファイルを出力


3 ビューア あるいは ブラウザ
 整形ユーティリティには表示のためのビューア機能と、情報をまとまった形で閲覧するブラウザ機能が用意されています。
すなわち、イベント処理( kev/kex )やライブラリ( cmd/cmx )を表示・閲覧するためのアプリケーションです。

3.1 表示のためのビューア機能

 ―手続き名のインデックス
  [手続き選択]テキストボックスのドロップダウンリストは、手続き名のインデックスです。
 整形ユーティリティは、ドロップダウンリストで目的のプロシージャ(手続き)を表示できます。
 ドロップダウンリストの先頭には[名札  メイン]が表示されます。

 ―手続き名のインデックスのソート
  整形ユーティリティは、[手続きのインデックスのプロシージャ(名札メインとイベントハンドラと一般手続き)をソートできます。
 [リストソート]チェックボックスのオン/オフで手続き名のソートとソート解除をトグル動作します。

  ソートは2段ソートです。

 【優先順位1位】
 [名札メインとイベントハンドラと一般手続き]で、名札メインが最優先で、次がイベントハンドラで最後が一般手続きの順番になります。

  ┌イベントハンドラ
  │ ├ 1 名札 メイン
  │ ├ 2 フォーム
  │ ├ 3 フォームヘッダ部
  │ ├ 4 フォーム明細部
  │ ├ 5 フォームフッタ部
  │ └ 6 その他のオブジェクト ※その他のオブジェクトは、辞書順でソート
  │
  └── 7 一般手続き ※辞書順でソート

  ※数字 1 から 7 は優先順

 【優先順位2位】
  イベントの種類です。※順番はイベントの発生順ではありません。

  フォーム開始,フォーム終了,レコード移動,グループ移動,行削除開始,行削除終了
  行訂正開始,行訂正終了前,行訂正エラー,行訂正終了
  行挿入開始,行挿入終了前,行挿入エラー,行挿入終了
  グループ検索開始,グループ検索終了,グループ追加開始,グループ追加終了,グループ値訂正開始,グループ値訂正終了
  マウス左ダウン,マウス左アップ,マウス右ダウン,マウス右アップ,マウス移動
  キーダウン,キーアップ,キー入力,システムキーダウン,システムキーアップ,タイマー1,タイマー2

  フォーカス取得,フォーカス喪失,入力前,編集開始,入力後,ソース値更新,編集文字列変更,選択値変更
  マウスインアウト,マウス左ダウン,マウス左アップ,マウス左クリック,マウス右ダウン,マウス右アップ
  マウス移動,入力支援オープン,入力支援クローズ


 fig.5 手続き名のインデックス

 ―[手続き選択]テキストボックスへ文字列を入力して検索する
  [手続き選択]テキストボックスへ手続き名を入力すると該当する手続きへジャンプします。

 ―範囲選択した文字列で検索する
  整形ユーティリティの明細部で文字列を範囲選択した状態で、
 [検索先頭から]・[検索次へ]・[検索前へ]ボタンを実行すると文字列を検索できます。


 fig.6 文字列を範囲選択して実行

 ―手続きのジャップ一覧
  [手続きを登録・展開]ボタンを実行する
  ・[手続き定義開始]コマンドの行 … ジャップ一覧に手続き名が登録されます。
  ・[手続き実行]  コマンドの行 … ジャップ一覧に行番号が登録されると同時に手続きへジャンプして手続き名が登録されます。
 ジャップ一覧は、[ジャンプ一覧]ボタンを実行すると確認できます。
 [戻る]ボタン[進む]ボタンを実行するとジャンプ一覧のジャンプ先へ移動できます。


 fig.7 ジャンプ一覧

 ―ネスト(入れ子)のジャンプ
  [前のネストへ]ボタン[次のネストへ]ボタンを実行すると、制御構造の行へジャンプします。
 制御構造の行は、行動ダイアグラムの対象になる[実行制御]文です。
 すなわち、if ... else ... end /繰り返し (条件) ... 繰り返し終了/ケース開始 ... ケース (条件) ... ケース終了コマンドの行です。
  [最上位の前のネストへ]ボタン[最上位の次のネストへ]ボタンを実行すると、最上位の制御構造の行へジャンプします。


 fig.8 ネスト(入れ子)のジャンプ

 ―手続きの前後移動
  [↑]ボタン[↓]ボタンを実行すると手続きを前後に移動できます。この時、マウスのボタンを押し続けるとリピートします。
 移動の順序は「手続き名のインデックス」に従います。
 [リストソート]チェックボックスがオンの場合、「手続き名のインデックス」はソートされます。


 fig.9 手続きの前後移動

 ―ファイル編集と手続き編集
  [手続き]チェックボックスをオンにすると1つの手続きだけが表示されます。
 [手続き編集]ボタンを押して、ボタンをオレンジ色にしても同じです。


 fig.10 ファイル編集と手続き編集

3.2 情報をまとまった形で閲覧するブラウザ機能

   ┌────┐ ┌────┐ ┌────┐
   │手続き │ │テキスト印刷│ │変数チェック│
   │一覧  │ │    │ │    │
   └─┬┬─┘ └─┬┬─┘ └─┬┬─┘
     ↑↓     ↑↓     ↑↓
     リンク※   リンク※   リンク※ [手続き名]でリンク
     ↑↓     ↑↓     ↑↓
  ┌──┴┴─────┴┴─────┴┴───┐
  │                     │
  │整形ユーティリティ(1)(2)(3)(4)│
  │                     │
  └─────────────────────┘


 fig.11 情報をまとまった形で閲覧するブラウザ機能

 ―[手続き一覧]ウィンドウ
  整形ユーティリティの[手続き一覧... ]ボタンを実行すると[手続き一覧]ウィンドウがポップアップします。
 文字色が青色の[⇒手続き]ボタンでもポップアップします。
 ポップアップしたウィンドウはモードレスウィンドウなので[整形ユーティリティ]へフォーカスを移動できます。
 項目名ボタン[手続き]をクリックすると、手続き名のソートとソート解除をトグル動作します。
 [開く]ボタンを実行すると整形ユーティリティの手続きへジャンプします。
 明細部の手続き名の行をダブルクリックすると整形ユーティリティの手続きへジャンプします。


 fig.12 [手続き一覧]ウィンドウ

 ―[テキスト /印刷]ウィンドウ
  整形ユーティリティの[テキスト /印刷... ]ボタンを実行すると[テキスト/印刷]ウィンドウがポップアップします。
 文字色が赤色の[⇒手続き]ボタンでもポップアップします。
 ポップアップしたウィンドウはモードレスウィンドウなので[整形ユーティリティ]へフォーカスを移動できます。
 項目名ボタン[手続き]をクリックすると、手続き名のソートとソート解除をトグル動作します。
 明細部の手続き名の行をダブルクリックすると整形ユーティリティの手続きへジャンプします。


 fig.13 [テキスト /印刷]ウィンドウ

 ―[変数チェック]ウィンドウ
  整形ユーティリティの[変数チェック... ]ボタンを実行すると[変数チェック]ウィンドウがポップアップします。
 ポップアップしたウィンドウはモードレスウィンドウなので[整形ユーティリティ]へフォーカスを移動できます。
 このウィンドウはデータを作成した時点で、[整形ユーティリティ]の[リストソート]チェックボックスがオンの場合に限り手続き名がソートされています。
  項目名ボタン[手続き名]をクリックすると、手続き名のソートとソート解除をトグル動作しますが、通常の文字符号順ソートです。
 なお、[辞書順でソートする]ボタンが[ON]の場合には辞書順でソートします。
  [手続き選択]ドロップダウンリストボックスの左側の[ソート] コマンドボタンを実行すると、
 オン(凸)/オフ(凹)でドロップダウンリストの手続き名のソートとソート解除をトグル動作します。


 fig.14 [変数チェック]ウィンドウ




トップページに戻る
桐の釣魚大全のトップ > 整形ユーティリティ教書 基本編