空ファイル | package入門(カレンダー・システム編) [講座] | 逆ポーランド電卓の実践ウェブ rpn hacks!

逆ポーランド電卓の実践ウェブ rpn hacks!

逆ポーランド電卓rpnの実践ウェブ   
rpn hacks! アールピーエヌ・ハックスサイトマップ

rpn | 講座 | package入門 | ポテンシャルを飛躍的に高めるrpnパッケージを学習。

空ファイル

 予想に反して、空ファイルを作るのは意外に面倒です。空ファイルとは0バイトのファイルです。別の言い方をすると、ファイル名はあるが中身がないというファイルですね。パソコンのOSによっては作れないこともあります。

さて、DOSを使って空ファイルを作る方法はいくつかありますが、汎用性に乏しく母体のWindowsのバージョンによって動作が一定ではありません。また、ファイルが既に存在していたときに上書き確認を求めて処理が一旦停止するなど、自動実行に向きません。

rpnの空ファイルの作り方

 そこで、rpnで空ファイルを作る方法を用意しました。カレンダー・システムパッケージのnullプログラムを使えばWindowsのバージョンに依存しないで確実に空ファイルを作ることができます。

  >rpn -c null >data.txt


このrpn式を実行すると、data.txtに内容がない(0バイト)のファイルが作られます。既にdata.txtが存在していた場合は空ファイルとして無条件に上書きされます。ファイルの内容をクリアにしたいときに重宝するでしょう。

nullはブラックホール

 nullプログラムはブラックホールのようなプログラムで、引き渡されたデータが全て消えてなくなります。例えば、以下のrpn式は1を10回エコーします。

  >rpn 10 1 -c echo
  1
  1
  1
  1
  1
  1
  1
  1
  1
  1


1が10回エコーされていますね。このデータを次のnullプログラムに引き渡してみます。

  >rpn 10 1 -c echo | rpn -c null


何も出てきません。このようにnullプログラムはデータの全てを吸収して、データがなかったことにしてしまいます。以下は別の例です。

  >rpn 10 1 -c echo >data.txt
  >rpn -c null <data.txt


echoの結果をdata.txtに格納して、改めてrpnのnullプログラムに読み込ませても同じように何も出てきません。nullからは何も出てこないし、nullには全てが吸収されるというわけです。

エコーで空ファイルを作る

 ちなみに、rpnを使った空ファイルを作るもう一つの方法が、echoプログラムにあります。

  >rpn 0 1 -c echo >data.txt


これでも同じように空ファイルのdata.txtが作られます。1を0回エコーするため、結局何も出力されないで空ファイルが作られます。nullプログラムでもechoプログラムでの好きな方を使えばいいでしょう。

このnullプログラムはechoプログラム以上に利用価値に不思議感があるかもしれません。直接計算に使うことはあまりありません。どちらかと言えば、計算に入る前のファイルの準備や、計算途中でのファイル内容のリセットなどを行う裏方的な使い方がメインになります。

nullもechoも存在感の薄いプログラムなのですが、いざ必要になったときは他に代替方法がないので、あまり使わないけど無いと困る代表のようなプログラムなのです。

情報本講座で使用したプログラムは、カレンダー・システムパッケージとして購入することができます。xypとnpdはrpnの姉妹ソフトウェアです。詳しくはプロダクトを参照ください。

カレンダー・システムパッケージ

カレンダー

ユーティリティー

マイスター

警告文字で作られた図表や式が崩れることがあります。ブラウザによっては固定幅フォントをMSゴシックにするときれいに表示されます。それでも崩れる場合は図表や式をメモ帳にコピー後、閲覧下さい。

警告rpn標準版(2kリビジョン)はダブルクォートで囲ってください。

rpn 1 2 + ⇒ rpn "1 2 +"
rpn 1 -c foo ⇒ rpn "1" -c "foo"

ダブルクォートは省略できることが多いのですが、慣れない間は囲んだほうが無難です。なお、本ウェブサイトの記事ではrpn標準版(98リビジョン)を使用しているため囲っていません。詳しくは技術サポートの「rpn TIPS」を参照ください。

注意rpnの障害情報と対策はこちら