めざら さん ESTさん 今晩は!
2006年6月頃にEstさんが、TAG_rev.defというマクロを野ざらし言の場において公表されました。
以下のマクロです。
=====tag_rev.def(v0.02) ====by Est for akabeko
*m
50^\ ""
:a (s)?{ (wa)?#[ ?{ wa=wo, (z)? #[ } >a }
#E "A:\vz\tagsk21p.bat" #m #[ ;★taged.batの場所によって
は要修正
#O &?("A:\vz\tag.txt")#m ;★tag.txtの場所によっては要修正
we250,
#_
#F &?("本日") &d #m #r ;★"本日"を示す文字列によっては
要修正
#< #b mb2, #> mb0, #< ;擬似ブロック
*
=====END of tag_rev.def ====
めざら さんもご記憶のことと存じます。当時、めざら さん、Estさん、私の3名の間で会話があった
わけです。
当時、私は、Estが折角、タグスケ・ユーザーのために作ってくださったのに、このマクロが一体何の効用(メリット)があるのか、皆目理解できませんでした。そのため、タグスケ.batは毎日使ってきたのに、tag_rev.defについては、現在に至るまで約5年、全く使っていませんでした。
タグスケ.batはMS-DOSの親プロセスで実行するものですが、tag_rev.defは子プロセスを介してタグスケ.batを実行するものですね。わざわざ、親プロセス・プロンプトに降りて行かなくても最終スケジュール表(TAG.txt)の元となる日誌ファイルの編集画面において居ながらにして、tag_rev.defで、タグスケ.batを実行すればTAG.txtが作れるじゃないか(ひと手間手が抜ける)とESTさんは考えたように私は推測します。しかし、この子プロセスを介してタグスケ.batを実行する方法は、欠点(デメリット)があります。
(註)念のためタグスケ・システムを以下に簡単に要約してみます。
a. 案件毎にファイルを作成し、そのファイルに時系列でTo Do 事項(予定事
項)を時間・場所等を1行で簡潔にエディター(VZ EDITORを使っていま
す)で入力します。
b. 記入した未来のTo Do 事項の行頭に#マーク(TAGという。付箋のこ と)を入力しておきます。
c. タグバッチを実行すると、多数の日誌ファイルの中から#マークのついた将 来のTo Do事項を記録した行のみを拾ってきて時系列で整理して、集計し、 抽出し、日誌ファイル から変身した姿(結果)をスケジュール表として見 せてくれます。
d. スケジュール表と各案件ファイルとの間はVZ EDITORのタグ・ジャンプ機能 で自由にワンタッチで往来できます。
タグスケとは、大体、こんな仕組みです。
さて、tag_rev.defはどんな欠点があるかということです。
話が長くなって恐縮ですが、聞いてください。
多数の日誌ファイルの中の一つにhlthdth.txt(広く人の生死や健康に関係する事項を記録します)
というファイルがあります。
このファイルに次の予定事項が記録されていたとします。
「
#2011/02/10/(木)11.00 虎ノ門病院・消化器外科で検診
#2011/03/21/(月)休日、13.00お彼岸につき、高崎の ○○寺に亡父の墓参。」
或る日、上記の2行目の03/21/(月)の件についての「 」内の予定事項を上記のとおりに記入し、この記録
を保存し、直ちにtag_rev.defを実行したとします。TAG.txtには03/21/(月)の件についての予定事項が転記されません。
ところが、03/21/(月)の件についての予定事項を記入し、この記録を保存し、ファイル終了してから親プロセス・プロンプトに降りてタグスケ.batを実行した場合は、当然のことながら、TAG.txtには03/21/(月)の件についての予定事項がTAG.txtに転記されます。
それでは、tag_rev.defが親プロセス・プロンプトに降りて行かなくても、元ファイルの編集画面でタグスケ.batを実行出来るというメリットを生かしながら、最前入力した予定事項をTAG.txtに転記をすることを可能にする方途はあるか?ということです。それが可能であり、デメリットが修正されれば、tag_rev.defの実用価値が顕著に出てくるということです。
面倒なことをお願いして恐縮ですが、タグスケ・ユーザーのMASAさんのMASA'S WONDERLANDにおけるベータ版のタグスケ2.2をダウンロードしていただきたいと思います。同梱されているタグスケ.bat(Tagsk22p.bat)を見てください。
このバッチの最終行に 「del $? 」とあります。 「del 」を外してこのバッチを実行すると分かるのですが、$?とは$1、$2、$3、$4、$5、$6、$7 のことです。
タグスケ・システムにおいて、元となる日誌ファイル から変身した姿(結果)をスケジュール表として見せる
プロセスは実は8段階に成っています。$1→$2→$3→$4→$5→$6→$7→TAG.txtという経過をたどって、最終スケジュール表(TAG.txt)が出来上がっています。$1→$2→$3→$4→$5→$6→$7という中間過程は最終段階で消していますが、実際にはこれらの中間ファイルは裏方として働いています。
$1に「
#2011/03/21/(月)休日、13.00お彼岸につき、高崎の ○○寺に亡父の墓参。」という文字列をブロック指定してブロックした記憶をDOSへ運び、COPY&PASTEするとともに、ファイル名とこの予定事項記入が何行目にあるか
に関する情報を取得し$1にCOPY&PASTEすることができれば、目的は達成できると思うのです。
編集画面の右上にファイル名が見えますから、ファイル名の情報を取得出来ると思います。
「 」内の記入予定事項が編集中のファイルの上から何行目にあるかについての情報の取得は、マクロ師の方々にとっては、容易なことと思います。コピー先ファイル$1においてのコピーする位置についてですが、文頭で良いと思います。いずれ後でソートされて、適当な場所に移されるのですから。
残念ながら、あかべこにはマクロ・プログラミングの能力が皆無ですので、めざら さんにご教示をお願いする次第です。ESTさんも出てきていただくと有難いのですが、5年も昔のことですから、駄目かもしれませんね。