How to open a file with win32ole


#1

Hi all,

I want to open a file via win32ole. I find the method ‘Open’ there but
always get error feedback. I wonder if anyone can give me a hand.

Thanks,

Li

########################
require ‘win32ole’
fs=WIN32OLE.new(‘SAPI.SpFileStream’)
count=1
fs.ole_methods.each{|m|
print count,"\t"
print m,"\t"
print m.return_type_detail,"\t"
puts
count+=1
}

file=‘c:/test.txt’
fs.open(file)###line14 here

win32ole2.rb:14:in `method_missing’: open (WIN32OLERuntimeError)
OLE error code:800C0005 in

HRESULT error code:0x80020009
Exception occurred. from win32ole2.rb:14

Exit code: 1


#2

try this:

require ‘win32ole’
fs=WIN32OLE.new(‘SAPI.SpFileStream’)

p fs.ole_method(“open”).params

file=‘c:/test.txt’

fs.Open(file,2) #least two params
fs.write(“data”)
fs.Close


#3

gpy good wrote:

try this:

require ‘win32ole’
fs=WIN32OLE.new(‘SAPI.SpFileStream’)

p fs.ole_method(“open”).params

file=‘c:/test.txt’

fs.Open(file,2) #least two params
fs.write(“data”)
fs.Close

Hi bud,

Thank you very much for the tips. It is so sweet.

From this example I guess that if a method is on the list but the object
cannot receive it, most likely that more parameters need to be passed
in.

One more question: How am I supposed that I should pass number 2 in the
script above, instead of other numbers like, 0, 1, 10,…?

Li