[#41876] mswin32版のライセンスについて — TOBY <toby@...>

はじめまして、rubyを愛してやまないTOBYと申します。

13 messages 2006/03/05

[#41886] "win32/registry" と "dl/win32" の相性について — take_tk <ggb03124@...>

たけ(tk)です

14 messages 2006/03/07
[#41887] Re: "win32/registry" と "dl/win32" の相性について — nobu@... 2006/03/07

なかだです。

[#41888] Re: "win32/registry" と "dl/win32" の相性について — take_tk <ggb03124@...> 2006/03/07

たけ(tk)です

[#41933] Cygwin での #!/bin/env ruby -Ks — "Hideo Konami" <konami@...>

小波です。Cygwin で Ruby のスクリプトをいつも書いています。

14 messages 2006/03/22

[ruby-list:41956] WIN32OLE#[]とWIN32OLE#[]=の変更

From: Masaki Suketa <masaki.suketa@...>
Date: 2006-03-25 12:59:24 UTC
List: ruby-list #41956
助田です。

Win32OLEユーザーの方への質問です。

Win32OLEで、今までより、若干、省略した書き方ができる代わりに、
Ruby 1.9以降でWIN32OLE#[] と WIN32OLE#[]= の仕様を大幅に変更しようか
どうしようか迷っています。
Ruby 1.8は変更するつもりは無いです。

この2つのメソッドを使ってらっしゃる方はどのくらいいらっしゃる
でしょうか?

具体的には、プロパティを取得したり設定したりするときに []や[]=
を使っている場合、動かなくなります。
([]の中ではプロパティを指定できなくなる。)

例えば、

  excel = WIN32OLE.new("Excel.Application")
  excel['Visible'] = true

は動かなくなり

  excel = WIN32OLE.new("Excel.Application")
  excel.Visible = true

と書く必要があります。
他にも

   installer = WIN32OLE.new("WindowsInstaller.Installer")
   record = installer.CreateRecord(2)
   record ["StringData", 1] = 'dddd'

も駄目で

   installer = WIN32OLE.new("WindowsInstaller.Installer")
   record = installer.CreateRecord(2)
   record.setproperty("StringData", 1, 'dddd')

と書く必要があります。

代わりに、Excelでは

  worksheet.cells[1,2] = 10

と書けたり、他にも

  sh = WIN32OLE.new("WScript.Shell")
  env = sh.Environment("User")
  p env["FOO"]
  env["FOO"] = "BARBAZ"

と書けたり

  ado = WIN32OLE.new("ADODB.Connection")
  ado.Open("...")
  rs = ado.Execute("SELECT * from TABLE01")
  while !rs.EOF
      puts rs.Fields.Item("id").value
      puts rs.Fields("id").value
      puts rs["id"].value # ココがポイント
      rs.MoveNext
  end

と書いたりできるようになります。

とりあえず、1.9にコミットしてみようかとも思ったのですが
その前に使ってくださってる方の意見も聞いてみたいので
メールを出しました。

  助田雅紀

In This Thread

Prev Next