知子の情報 Pro マクロ言語


特徴
実行速度が速い:
インタープリタ型ではなく、一度中間言語にコンパイルしたものを実行するから実行速度が高速です。
充実した関数:
標準関数も200を超え、知子の情報のほとんどの機能にアクセスできます。
単純な構文:
構文は単純。変数名も自由に設定できるので、暗号を解読するようなマクロ言語とは一味違います。
デバッグ機能搭載:
コンパイル時にエラーが発生すると自動的にエディタが起動し、修正すべき位置にカーソルが移動。
さらにソースコードデバッガまで付いてくる!
簡単なマクロは数行で完成:
複数の機能を組み合わせるだけの「バッチ処理」は処理を羅列するだけでOK。


堀啓造さんのホームページに「知子の情報」関連のユーティリティやマクロがあります。

括弧を挿入するマクロのダウンロード
(必ず拡張子を *.TMC でダウンロードしてください。)


例えば....カーソルのある行を一つのキー操作で範囲指定するには...

1)今までの方法
カーソルを行の左端に移動し、右端まで範囲指定する為にShift+Endを同時に押す

2)マクロを使えば(Atl+0にマクロを割り当てた場合)
Alt+0 を押すだけ

→ マクロの内容は....

            CurLeftEnd
            SelectRight



えっ?もっと複雑なことができないかって?もちろん可能です。知子の情報 Pro に実装されているマクロ言語には数多くの標準関数があります。以下の表はそのうちのいくつかの具体例です。

ShellExecuteWindowsのAPIの一つです。マクロ言語から直接呼ぶことができます。
GetTomTitle知子の情報に登録されているデータの「表題」を得る関数です。
SaveWinPosWindowの位置を記憶します。
UndeleteChar削除された文字を復活します。
CopyFileファイルをコピーします。



このマクロ言語は以下のようにかなり余裕があります:

一つのマクロで記述できる行数
(コメントなどは除く)
500行
定義できる変数の数100個(Integer、File、文字列などの合計)
同時におこなえるファイルI/O
(オープンできるファイル数)
サブルーチンのネストコール数
50



デバッグはどのようにするのですか?

知子の情報 Pro にはソースコードデバッガも付いてきます。
自分で書いたマクロを一行ずつ実行し、変数の変化を確認しながら
マクロの問題箇所を特定できます。




何かもっと難しそうな例題ですか?
では以下のマクロをごらんください。このマクロは表題と索引に自分の名前を挿入するものです。
自分の名前が既にあるかどうかもチェックしています。

;; 表題と索引に自分の名前を入れる String Name, NameForTitle STring Title, Key Integer i, nFound TomFile JumpIfFalse(End) ; 知子ファイルでない場合には終了 SetStr(Name,'山田太郎') ; この部分に自分の名前を入れる GetTomTitle(Title) ; すでに登録されている表題を得る AddStr2(NameForTitle,Name,' - ') StrFind(nFound,Title,NameForTitle) ; すでに表題の先頭が名前である場合には索引への登録へ CmpInt(nFound,'=',0) JumpIfTrue(Key) AddStr2(Title,NameForTitle,Title) SetTomTitle(Title) ; 名前付の表題に :Key SetInt(i,0) ; ループカウンタを0にする :Loop GetTomKey(Key,i) ; i 番目の索引を得る CmpStr(Key,'=',Name) JumpIfTrue(End) ; すでに索引に名前があれば終了する CmpStr(Key,'=','') JumpIfFalse(Skip) ; ヌルであれば索引に名前を入れて終了 SetTomKey(Name,i) Jump(End) :Skip Inc(i) ; ループカウンタを1増やし、 CmpInt(i,'=',28) ; 28に等しければ終了 JumpIfTrue(End) Jump(Loop) ; 28以下なのでループする :End



ちょっと難しいですか?
テグレット技術開発ではこのマクロ言語の講習をホームページ上でおこなう予定です。ご期待ください。