お世話になっております。 A.中村です。

On Mon, 13 Dec 1999 16:50:52 +0900
Itou-T15 / mail.dnp.co.jp wrote:

>選択範囲を一時ファイルに書いてexecするエディタマクロを書くのはいいのだが、どうせメモリーに入っていたのだから。

うーむ。そういや「フクザツな構造を持つデータ」
つまりオブジェクト(笑)群を「保存」するのはPStoreで
出来るけど、それも結局ファイルに落ちるわけだし。

データ(オブジェクト)構造を平坦なデータに翻訳するのは
PStoreみたいなものにやってもらえば済むとしても、
その平坦データの送り先として一般性のあるモノそのものが、
ナイ…(よね?)

やっぱりStreamの出番でしょうかね>かさはらさん(^^;
ファイルだろうがメモリ(RubyだとString、あるいは共有メモリ)
だろうがクリップボードだろうがRDBのBLOBだろうが、1次元バイト列を
出し入れできる対象については同一のinterfaceで取り扱える
っていう、アレの。

現状のIOクラスだと、ちょっとFile臭さが強すぎるんで
幾つかのメソッドはそのまま書けへんっすね。なので、
以前も話あったけど、これから直接継承はしたくない。

module Streamable とか作って、IOのうち使えるメソッドだけ
ピックアップしたようなメソッドを並べておいて、
実装は殆どスカにしてinclude先で実装してもらう
…みたいな感じでしょか。
幾つかのメソッドはtemplete methodパターンで
実装出来るでしょうけど、出来ないのも多そう。

#interfaceの共有という言い方がマズイなら、
#作法の共有とでも言い換えようか…うーん

FileIOStreamはIOのメソッドを呼ぶだけだし
ClipboardStreamはアレだし、BLOBStreamはコレだし…
StringStreamとかSharedMemStreamとか…
#WinならついでにResourceStreamとかも。
#これでdelphiに対抗できるようになる(笑)