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

On Tue, 14 Dec 1999 12:09:52 +0900
"NAKAMURA, Hiroshi" <nakahiro / sarion.co.jp> wrote:

>大元の話をちゃんと把握してませんでしたが(すいません),新たなフォーマット(中村暁史さん書かれたところのtype?)としてRubyのオブジェクトフォーマットを登録,ということなんでしたっけ?

いや、違ったと思います。こっちもすみませんm(__)m

最初はtextのことしか念頭になかったのかなと思います。
んで、なひさんが「テキスト以外のデータ」について言及
したんで、その更に延長(外挿)について俺も考えた、のです(^^;

>テキストフォーマット指定で取り出された時用にはinspectしたものを登録し,ビットマップ形式用にクラス図ビットマップを登録し(やりすぎ),Rubyフォーマット用にはMarshal#dump.

ゴメンナサイ私が悪ぅございました(笑)
#シーケンス図で現在までの挙動履歴をbitmapに…(笑)
#それってデバッガ?うーんこれいいかも知れない(笑)。

delphiだとMarshall#dumpに相当するもののClipboard送りと
それとは別にtextや数種類の絵「のデータ」を送るのとが
デフォでは出来るようになってます。結局それぞれ用のメソッドを
用意してるって感じ。絵については絵オブジェクトが新規クラス
である場合、絵が自分のtypeを登録するっていうことは出来るみたい。

オブジェクト自体を送るのと、それが持っているデータを送るのとでは
別立てでメソッドとかを用意しとくってのが、フルセットな姿
なんでしょうかね。


>m.set( { :CF_TEXT => anObject.inspect, :CF_RUBYOBJECT => anObject.dump } )m.get( :CF_TEXT )m.get( :CF_RUBYOBJECT )

う。理解できてない俺。
ええとこのm.setはどういうことをするメソッドなんでしょうか?
複数のデータ(およびデータ形式)を書くんじゃないだろうし…

>  m1 = MSWinClipboard::open( :CF_TEXT, "w" )m1.write( anObject.inspect )m1.close()m2 = MSWinClipboard::open( :CF_RUBYOBJECT, "w" )m2.write( anObject.dump )m2.close()

多分これ、m2の結果(clipboardに何かが書かれる)が
m1の結果を書き潰していますよね。
しかもその順序は明示的です。(m1がm2を潰すのではなくて)

上のほうの例と同じ挙動という意図だとすると、上のほうの例で
Hash使っちゃって順序が保存されなくなってるのが
ちょっと気になるところです。どういう風に読めば
いいんでしょうか?


>複数あったらただの共有メモリかも.

1つしかなくてもただの共有メモリなのでは(^^;

>共有メモリに「OSベースで標準化されたフォーマット」があっても悪くないですが,次々に増えていく異種フォーマットは,「OSベンダー」にはコントロールしきれないでしょう.:-)

やっぱりosもoopみたいにしてtypeの樹形図を
サポートしてくれないとなあ…と思うのです。

コントロールというよりも、「自作可能なtype」「type同士の
関連(継承?)もまた自作できる」「typeの挙動も勿論自作できる」
「で、自作の方法は標準化されてる」っていうメタ標準化を
やればいいんじゃないかなあ。それでこそOperationSystem。

まぁそれは特定の芸風のosベンダーにはイヤなことなのかもですが。

例:
win(少なくとも9x)のエクスプローラで、ファイル「の内容」の
検索ってのが出来ますが、不思議なことに(笑)MSWordなどの文書
「の内容」は検索できないみたい。勿論それ以外のどのtypeの文書も。
出来るのはテキスト「の内容」の検索だけ。
つーかhtmlもタグの中身拾ったりするし。まぬけ。
#勿論unixも同じこと(^^;

これ、登録されたtypeによって個々のアプリクラスに
検索手段を任せるようにしてあれば、円満解決なんです
けどねえ。きっと。
#名古屋の某製品に、そのシカケ組みこめばよかったかな(^^;

ん、でもきちんと作らないと益々落ちやすくなるか(笑)。