みなさん、こんにちは。
もう、11月。東京は冷たい雨が降っています。風邪などひかないようにしてください。今回は、前回の予告どおり、fl
マクロの話に戻って、表示の成型方法について、説明しましょう。
現時点の fl
マクロは、実行すると次のように結果を出力しています。
これを目に美しく成型したいと思います。とにかく、日付と時間なのだから最低でもこんな風にしたいですよね。
2016/9/8 16:31:27.808120
そこで、ソースを改造します。
load
して実行してみると、
うまくいっていますね。解説しましょう。
#setmany
は前回説明した通り。先頭の 2457640
は読み飛ばして、その後ろの 2016 9 8 16 31 27 808 120
をそれぞれ yyyy mm dd hh mmm ss ms us
に代入しています。#output
は画面に出力する built-in function
です。#setmany
で代入したvariable
を [ ]
で展開して表示しています。[ ]
が大事なところで、
ではダメです。これはもう理解していますよね?判らない人は実際にこのように書いてみて、出力結果を確認してみてください。とりあえず日付らしくはなりましたが、fileinfo
の出力と比べても味気ない表示です。何が足りないでしょうか。ファイル名が出ていませんよね。出してみましょう。[fn1]
をそのまま出すのではなく、少し捻ります。
実行してみましょう。
vol/subvol
がタイトル風に表示され、ファイル名と最終オープン時刻が表示されました。今回は次のような行を追加しました。
ここに2点のポイントがあります。1点目は [ ]
のネストです。二重の [ ]
が使われているのが分かりますか?ネストは内側から展開していきますので
は、まず最初に
と、展開されます。fn1 variable
にはマクロのパラメータが代入されていることに注意してください。次に外側の [ ]
が展開されて
と、なります。これで fn2 variable
に macsrc
という値が代入されました。ネストは何重になってもOKです。ネストが使いこなせるようになればもうプロですね。
ポイントの2点目は #fileinfo built-in function
の使い方です。今までは #fileinfo
は #fileinfo/LASTOPEN_GMT/
として使ってきましたが、これとは違う使い方ですね。/
と /
で挟まれた LASTOPEN_GMT
や file
は #fileinfo
のオプションの1つで、他にも色々なオプションがあります。今回追加した file
オプションはファイル名 $vol.subvol.file
の file
部分のみを取りだすオプションです。次の行の
では、volume
オプションと subvol
オプションを使っています。それぞれ、$vol
と subvol
の部分を取りだします。オプションの一覧は
とすることで表示されます。
これまでの説明では、マクロのパラメータは volume
名称から指定する full qualified
形式で記述してきました。そのため fn1 variable
にも volume
名から全部入っていますが、#fileinfo
に与えるファイル名は部分的でも受け付けます。やってみましょう。
カレントの volume
名が表示されたと思います。また、ファイル名のルールに沿っている限り、存在しないファイル名でもエラーにはなりません。ファイル存在しているかどうかのチェックには EXISTENCE
オプションを使って
ファイルが存在していれば -1
を、存在していなければ 0
を返して正常終了します。オプションは複数同時に指定することもできます。#fileinfo
は時刻に関するオプションが3種類あります。それらを全部出してみましょう。
何やら数字が3つ並びました。これらのオプションは後日、この講座に再登場の予定です。詳しくはその時に説明しましょう。
次回も引き続き出力結果を「美しくする」ことを追求していきます。Au revoir!