人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Ruby(windows)についての質問です。
windows では、よくファイル一覧画面をだして、ファイルを選択することが可能です。VBAでは、
Application.GetOpenFilenameを使うと簡単にできます。これと同じことをRuby でやるには
どうするといいのでしょうか?

●質問者: kaiketsu
●カテゴリ:コンピュータ 科学・統計資料
✍キーワード:application Ruby VBA Windows ファイル
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● あすか
●23ポイント

WSHを使う必要があります。

こんな感じです。

require 'win32ole'
obj=WIN32OLE.new("MSComDlg.CommonDialog")
obj.MaxFileSize =255 
obj.Filter = "すべてのファイル (*.*)|*.*|"
obj.InitDir ="C:\\" 
obj.ShowOpen 
file=obj.FileName
wsh = WIN32OLE.new('WScript.Shell')

参考「Windows Scripting Host 14


2 ● garyo
●23ポイント

ActiveScriptRuby

http://www.geocities.co.jp/SiliconValley-PaloAlto/9251/ruby/

をインストールした場合、VisualuRubyもインストールするので

FormDesigner(VisualuRuby計画のGUIビルダ)

http://sourceforge.jp/projects/fdvr/

http://vruby.wiki.sourceforge.net/FormDesigner

http://vruby.sourceforge.net/cgi-bin/wiki.cgi?FormDesigner

をダウンロードすると、通常のWindowアプリが作れます。

ファイル一覧ダイアログも使用可能です。


3 ● henschel
●22ポイント

gemをインストールする必要がありますが、

WxRubyというフレームワークを使用することで

ファイル選択のためのダイアログ(FileDialog)を表示することができます


また、WxRubyはWindows以外の環境(MacやLinux)でも利用可能なので

この方法を使えば多くの環境で同じコードを動作させることができます


インストールは以下のコマンドで実行できます

gem install wxruby


以下のコードはテキストファイルまたは任意の種類のファイルを選択して、そのファイル名を標準出力に出力するだけのサンプルです

require 'rubygems'
require 'wx'

class MyApp < Wx::App
 def on_init
 dlg = Wx::FileDialog.new(nil, "ファイルを選択", "", "", "テキスト(*.txt)|*.txt|すべてのファイル(*)|*")
 if dlg.show_modal==Wx::ID_OK then
 puts "選択されたファイル: #{dlg.get_path}"
 else
 puts "キャンセルされました"
 end
 end
end

MyApp.new.main_loop

4 ● garyo
●22ポイント

ruby/tkを使った例です。

ruby/tk自体は標準ライブラリなのですが、ActiveTclをインストールする必要があります。

http://www.activestate.com/activetcl/downloads/

最新のActiveTcl 8.5.2.0は動かないので、ActiveTcl 8.4.19.0を入れましょう。

うまく動かない場合はC:\Tcl\lib\tcl84.libをソースと同じ所にコピーしてみてください。


require 'tk'

lbl=TkLabel.new
lbl.text="file name"
lbl.pack

etr=TkEntry.new
etr.pack

btnSet=TkButton.new
btnSet.text = "File Select"
btnSet.command{etr.value = Tk.getOpenFile}
btnSet.pack


btn=TkButton.new
btn.text = "quit"
btn.command{exit}
btn.pack

Tk.mainloop
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ