空ファイル
予想に反して、空ファイルを作るのは意外に面倒です。空ファイルとは0バイトのファイルです。別の言い方をすると、ファイル名はあるが中身がないというファイルですね。パソコンのOSによっては作れないこともあります。
さて、DOSを使って空ファイルを作る方法はいくつかありますが、汎用性に乏しく母体のWindowsのバージョンによって動作が一定ではありません。また、ファイルが既に存在していたときに上書き確認を求めて処理が一旦停止するなど、自動実行に向きません。
rpnの空ファイルの作り方
そこで、rpnで空ファイルを作る方法を用意しました。カレンダー・システムパッケージのnullプログラムを使えばWindowsのバージョンに依存しないで確実に空ファイルを作ることができます。
このrpn式を実行すると、data.txtに内容がない(0バイト)のファイルが作られます。既にdata.txtが存在していた場合は空ファイルとして無条件に上書きされます。ファイルの内容をクリアにしたいときに重宝するでしょう。
nullはブラックホール
nullプログラムはブラックホールのようなプログラムで、引き渡されたデータが全て消えてなくなります。例えば、以下のrpn式は1を10回エコーします。
1
1
1
1
1
1
1
1
1
1
1が10回エコーされていますね。このデータを次のnullプログラムに引き渡してみます。
何も出てきません。このようにnullプログラムはデータの全てを吸収して、データがなかったことにしてしまいます。以下は別の例です。
>rpn -c null <data.txt
echoの結果をdata.txtに格納して、改めてrpnのnullプログラムに読み込ませても同じように何も出てきません。nullからは何も出てこないし、nullには全てが吸収されるというわけです。
エコーで空ファイルを作る
ちなみに、rpnを使った空ファイルを作るもう一つの方法が、echoプログラムにあります。
これでも同じように空ファイルのdata.txtが作られます。1を0回エコーするため、結局何も出力されないで空ファイルが作られます。nullプログラムでもechoプログラムでの好きな方を使えばいいでしょう。
このnullプログラムはechoプログラム以上に利用価値に不思議感があるかもしれません。直接計算に使うことはあまりありません。どちらかと言えば、計算に入る前のファイルの準備や、計算途中でのファイル内容のリセットなどを行う裏方的な使い方がメインになります。
nullもechoも存在感の薄いプログラムなのですが、いざ必要になったときは他に代替方法がないので、あまり使わないけど無いと困る代表のようなプログラムなのです。
本講座で使用したプログラムは、カレンダー・システムパッケージとして購入することができます。xypとnpdはrpnの姉妹ソフトウェアです。詳しくはプロダクトを参照ください。