REXX

私は REXX が嫌いだ!

というわけで、そんなタワシが作った REXX スクリプト/REXX用ライブラリを紹介しよう!なぜなら…

RLP - ReXX Local Pages

ReXX 命令や式を以下のように HTML 内に組み込むことができる、HTML用プリプロセッサです。JSP をヒントに作りました。

<HTML>
<BODY>
% DO I=1 TO 10
ほげほげ([% i %]番目)<BR>
% END
</BODY>
</HTML>

この rlp ファイルは、rlp.cmd によって次のように変換されます。(rlp sample.rlp > sample.html)

<HTML>
<BODY>
ほげほげ(1番目)<BR>
ほげほげ(2番目)<BR>
ほげほげ(3番目)<BR>
ほげほげ(4番目)<BR>
ほげほげ(5番目)<BR>
ほげほげ(6番目)<BR>
ほげほげ(7番目)<BR>
ほげほげ(8番目)<BR>
ほげほげ(9番目)<BR>
ほげほげ(10番目)<BR>
</BODY>
</HTML>

他の機能として次のようなものがあります。

基本的に、ローカルディレクトリの中で、静的にHTML ファイルを生成させて、HTML執筆の補助をさせるのを目的としています。JSP や CGI のように、動的に動作を変えるものではないので、ご注意を…。

1.01 5,054 Oct 15 23:27 rlp101.zip

変更履歴

1.01 (2000/10/15)
同じファイルを二回includeできない蟲を駆除
1.00 (2000/10/14)
初版

REXX 用1行入力ライブラリ effinput

eff の1行入力ルーチン(クラスだけど)を、REXX で使用できるよう、DLL化したものです。あいにく、かんなが使えませんが、ヒストリやファイル名補完などの機能は eff 同様に使用できます。

call RxFuncAdd 'effinput','effinput','effinput'
answer = effinput('Prompt:','DefaultValue')

てな感じで、REXX から使ってください。

DLLファイルのみ 16,109 Oct 1 12:38 effinput.zip
ソース込み 72,069 Oct 1 12:38 effinput-src.zip

DLL は単独で配布するのも、他のソフトに添付するのも全くの自由です。作者(葉山)に連絡する必要もありませんし、effinput のソースやドキュメントを添付しなくても構いません。また、http://hp.vector.co.jp/authors/VA009797/rexx/effinput.zip に直接リンクを張っても構いません。

なお、使用には 例によって、0.9d FIX02 以降のemx.dll , emxlibcs.dll , emxwrap.dllの三点セットが必要です。

CDRecord/2 用ファイル改名支援スクリプトrename4cd.cmd

CDRecord/2 で、CD-R を焼こうとする場合、「.」が複数ついていたり、日本語ファイル名が入っていたりして、意図通り焼けない場合が多々あります。で、本プログラムは

  1. 「.」を複数持つファイル名は、最後のもの以外を「_」に変更する。
  2. 日本語を持つファイル名は、新ファイル名を入力を促す。

などして、CD-R に焼けるファイル名に改名するのを支援するREXX スクリプトです。EAs,I doがある場合、以前のファイル名を拡張属性 .HISTORY に「rename from 旧ファイル名」という形で保存できます。なお、ディレクトリ名がひっかかる場合はお手あげですので、手動でお願いします。

誰か CDRecord/2 を日本語対応にしてくれぇぇ!

1,339 Oct 1 12:38 rename4cd.zip

使用には、effinput.dll , 0.9d FIX02以降のemx.dll,emxlibcs.dll,emxwrap.dllが必要です、REXX プログラムなのに…。

emx リビジョンチェッカ

OS/2 で普及しているフリーの開発環境として emx/gcc があり、利用している方も多いと思います。しかしながら、OS/2 magazine 休刊後、定期的に最新版をCD-ROMにて供給する媒体がなくなった為、プログラム開発側と利用側で、使用する DLL(ダイナミックリンクライブラリー)のバージョンが合致せず、動作しないというトラブルが見受けられるようになりました。

こういう場合、インストーラー等で、emx のバージョンが古いという旨の警告を出してやるのが親切というものでしょう。

そこで、emx 付属の emxrev.cmd を参考に、プログラム開発側の想定したバージョンの DLL が存在するかをチェックするスクリプトを REXX で作成しました。本プログラムはフリーウェア開発者がインストーラーなどに組み込むことを想定したものです。

3,952 Oct 1 12:38 emxchk.lzh

など、本プログラムは karl 1.15 にも含まれています。(ドキュメントは入ってませんけど)

Exclude.CMD

C言語のファイル中の不要な #include <〜>を列挙するREXX スクリプトです。emx/gcc専用で、かつ、grep が必要となります。 内部で鬼のように gcc を呼び出します。

1,086 Oct 1 12:38 exclude2.lzh

変更履歴

VFATSYNC

VFAT の LONGNAME を、EA の LONGNAME にコンバートします。

2,421 Oct 1 12:38 vfatsync.lzh

別に VFAT を解析するわけではなくて、Windows95 上で「dir /s \ >vfatdirを実行して得られたリダイレクト出力を読んで、各ファイルの拡張属性に書き込むだけの単純なプログラムです。

さて、実際のところ、それほど嫌いなのに何で使っているかというと、

などの点が見過ごせないからである。(とは言いつつ、拙作のEAs,I do用いれば、拡張属性の操作は perl でも awk でも出来るのだが…)

特に perl とか awk などはいくら慣れているといっても、配布する際、perl や awk がインストールされているのはまず期待できない。使用者に予備知識無しに使えるスクリプト言語は、悲しいかな、今のところ REXX だけなのである。

最近は Java でやろうかとも考えているが、Java は Warp 4 以降が標準なので、ちょっと使えない。OS/2 を使っている限りは、標準スクリプト言語たる REXX とつきあっていかねばならんのだろうなぁ〜。

ホーム