このフロントエンドからは、おみくじを表示するfortuneプログラムを実行できます。おみくじのメッセージ自体は冗談ですから真に受けないでください。PCK版のfortuneは、別紙の条件に基づき、http://packages.debian.org/unstable/games/fortune-mod.htmlから入手したfortune-mod_9708.orig.tar.gzに含まれていたソースコードに最低限のバグフィックスを施した上で、正規表現関連機能のサポートを取り除き、ファイル名とメッセージ番号を表示する-zオプションを追加し、環境変数FORTUNEDIRでデフォルトディレクトリを指定できるようにしたものです。占(randstr.exe)も同じ形式のファイルの内容をランダムに表示しますが、特定のファイルを選択して使う分、fortuneよりも単純です。なお、fortune-mod_9708.orig.tar.gzのその他のファイル(strfile、unstr、rot)については、このページを参照してください。
通常のウィンドウ
管のメインダイアログから起動したときのウィンドウ
オプションを指定しなければ、環境変数FORTUNEDIRに含まれているおみくじファイル群からランダムなメッセージを1つ選択して表示します。
UNIXでは、/usr/local/share/games/fortuneなどの決められた位置におみくじファイルを格納する習慣になっていますが、Windowsにはそのような習慣がありません。そこで、おみくじファイルを格納するディレクトリを環境変数で設定するようにしました。フロントエンドのFORTUNEDIRエディットボックスと「Fortunedir」ボタンは、他のフロントエンドでカレントディレクトリを設定するための「Chdir」ボタンやカレントディレクトリエディットボックスと同じように動作しますが、選択されたディレクトリをカレントディレクトリにするだけではなく、環境変数FORTUNEDIRをそのディレクトリに設定するところが異なります。また、システム内で環境変数FORTUNEDIRが指定されている場合には、起動時にそのディレクトリがFORTUNEDIRエディットボックスに表示されます。管(pipeline)にコマンド行をドラッグドロップしたときには、環境変数FORTUNEDIRの内容も管にコピーされます。
fortuneの入力は、通常のフィルタプログラムの入力ファイルの指定とは少し異なります。特に指定しなければ、環境変数FORTUNEDIRが指すディレクトリに含まれるすべてのfortuneファイルが対象になります。fortuneファイルとは、%(あるいは.datファイルで指定された別の文字)だけから構成される行で区切られた複数のメッセージを格納した特別な形式のテキストファイルです。fortuneファイルを本来の目的のために使うには、fortuneファイル名に拡張子.datを追加した補助ファイルも必要です(たとえば、artというfortuneファイルがあったとすると、art.datという補助ファイルが必要です)。この補助ファイルは、strfile.exeによって作成され、メッセージのファイル内での位置や区切り文字、ファイル内のメッセージの数、最長、最短のメッセージのサイズなどを格納しています。FORTUNEDIRディレクトリとそのなかに含まれるoffサブディレクトリ以外のディレクトリを指定したい場合、ほかのディレクトリやファイルを併用したい場合には、ディレクトリかファイルかFORTUNEDIRディレクトリのすべてのファイルを意味するallを1個以上指定することになっています。このようにディレクトリ、ファイル名を指定したときには、それぞれのファイルが何%の確率で選ばれるようにするかも指定できます。
フロントエンドは、これらさまざまな指定方法に対応するために、少々乱雑ですが、1個のリストコントロールと5個のプッシュボタンを使っています。
「直接」「ファイル」「all」は、指定の追加のために使います。「ファイル」を押すと、標準の「ファイルを開く」ダイアログボックスがオープンされ、FORTUNEDIRディレクトリ内のファイルが表示されます。FORTUNEDIRディレクトリと同じドライブからファイルを選択して「OK」ボタンを押すと、リストコントロールにそのファイルが追加されます。「直接」を押すと、次のようなダイアログボックスがオープンされます。
「ファイル」ボタンではディレクトリは指定できませんが、このダイアログボックスならディレクトリを指定できます。しかし、allは、「all」ボタンでしか追加できません。いずれにしても、同じファイル、ディレクトリを複数回指定することはできません。
リストコントロール内のエントリを選択して「%編集」を押すかエントリをダブルクリックすると、次のダイアログボックスがオープンされます。
このダイアログボックスを使えば、それぞれのエントリが選択される確率を指定できます。合計が100を越えると、fortune.exeがエラーを起こします。確率が指定されていないエントリは、指定されていない分の確率を適切に分け合います(-eが指定されていればファイル単位、そうでなければメッセージ単位で等分に)。
リストコントロール内のエントリを選択して「除去」か[Delete]キーを押すと、そのエントリはリストコントロールから取り除かれます。
-a ファイル、ディレクトリ、allを明示的に指定したときや-oオプションを指定したときには無意味なので無効になります。これを選択すると、FORTUNEDIRディレクトリ内のすべてのfortuneファイルと、FORTUNEDIR\offディレクトリのすべてのfortuneファイルが使われるようになります。FORTUNEDIR\offディレクトリには「攻撃的な」メッセージ(より正確に言えば、不快感を与える可能性の高いメッセージ)を満載したファイルを格納する習慣になっています。そのため、このディレクトリのfortuneファイルの内容は、13字分回転させておく習慣になっています。つまり、aはn、bはo、…nはa、oはb…に変換して、裸のファイルを見ても内容を読み取れないようにしてあるわけです。
-o ファイル、ディレクトリ、allを明示的に指定したときや-aオプションを指定したときには無意味なので無効になります。これを選択すると、FORTUNEDIR\offディレクトリのすべてのfortuneファイルが使われるようになります。
-l –nオプションで指定された長さよりも長いメッセージを表示します(-nが指定されていない場合には160バイト)。そういうものがなければ、もっとも長いいくつかのメッセージのなかから適当なものを表示します。
-s –nオプションで指定された長さよりも短いメッセージを表示します(-nが指定されていない場合には160バイト)。そういうものがなければ、もっとも短いいくつかのメッセージのなかから適当なものを表示します。
-n –l、-sオプションで長さを判断するための基準値を指定します。
-e デフォルトでは、個々のメッセージが選択される確率は、全体のメッセージ数で1を除算した値ですが、これを指定すると、ファイル数と当該ファイル内のメッセージ数の積で1を除算した値になります。
-f おみくじを表示せず、個々のファイル内のメッセージが表示される確率を標準エラー出力に出力します。たとえば、fortune-mod_9708.orig.tar.gzに格納されているおみくじファイルをすべて展開したときに、-fを実行すると、次のような出力になります。
100.00% FORTUNEDIR
3.44% art
0.07% ascii-art
7.65% computers
8.54% cookie
8.28% definitions
(中略)
4.72% work
4.10% zippy
■■-a -fを実行すると、次のような出力になります。
23.98% off
0.24% astrology
1.54% black-humor
1.89% definitions
(中略)
1.17% songs-poems
1.10% vulgarity
76.02% FORTUNEDIR
2.62% art
0.06% ascii-art
5.81% computers
6.49% cookie
6.29% definitions
(中略)
3.59% work
3.12% zippy
■■-a –e -fを実行すると、次のような出力になります。
50.00% off
2.78% astrology
2.78% black-humor
2.78% definitions
(中略)
2.78% songs-poems
2.78% vulgarity
50.00% FORTUNEDIR
1.43% art
1.43% ascii-art
1.43% computers
1.43% cookie
1.43% definitions
(中略)
1.43% work
1.43% zippy
-z どのファイルの何番目のメッセージかを冒頭に表示します。
-? fortune.exeのヘルプメッセージが表示されます。
-v fortune.exeのバージョン番号が表示されます。
これらのオプションを指定すると、オプショングループボックス内のほかのオプションは指定できなくなります。
通常、出力ファイル名を指定する必要はありません。指定しなければ、出力は一時ファイルに書き込まれ、その一時ファイルが指定されたテキストエディタによってオープンされます。しかし、ファイル名を指定すれば、出力はそのファイルにリダイレクトされ、テキストエディタにもそのファイルが渡されます。また、中央のエディットボックスにファイル名が表示され、その下の「追加」チェックボックスをチェックできるようになります。「追加」チェックオックスをチェックすると、そのファイルの元の内容の末尾に出力を書き足します。出力の指定方法の詳細は、「出力の指定」を参照してください。
出力グループボックスの下の行には、組み立てたコマンド行が表示されます。管(pipeline)の「編集」ボタンで起動したときを除き、コマンド行の左側の四角形をマウスでクリックしてドラッグしていくと、他の運、管、行(cmdline)にドロップできます。また、「コピー」ボタンを押すと、コマンド行情報がクリップボードにセットされます。クリップボードにコマンド行情報がセットされているときに、マウスの右ボタンをクリックし、コンテキストメニューから「貼り付け」を選択すると、クリップボードのコマンド行情報が反映されます。ドラッグアンドドロップとコピーアンドペーストの詳細は、「ドラッグアンドドロップとコピーアンドペースト」を参照してください。エキスポート、インポートされるときのコマンド行情報の形式については、「コマンド行情報のやり取りの仕組み」を参照してください。さらに、ダイアログボックス上でマウスの右ボタンを押したときに表示されるコンテキストメニューの「.batロード」、「.bat保存」コマンドを使えば、同じ形式のコマンド行情報を.batファイルとして保存し、あとでロードすることができます。このロード、保存機能の詳細は、「.batファイルのロードと保存」を参照してください。
「設定」ボタンを押すと、「設定」ダイアログボックスが表示されます。このダイアログボックスでは、
出力の表示に使うテキストエディタ
エクスプローラなどからフォルダをドロップしたときの確認メッセージの有無
出力の末尾に実行したコマンド行、実行時間などを付加するかどうか
コマンド行プログラムとしてどれを使うか
を指定できます。詳しくは、「設定ダイアログボックス」を参照してください。
「opt保存」ボタンを押すと、「オプション」グループボックス内の設定が保存されます。詳しくは「オプション保存」を参照してください。