質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Q&A

解決済

1回答

2808閲覧

Rubyのファイルダイアログのプログラムについて・・・

probaseball

総合スコア113

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

0グッド

0クリップ

投稿2015/10/23 06:51

編集2015/10/23 06:53

Rubyのファイルダイアログプログラムについて質問です。

このプログラムはファイルダイアログをひらいてユーザーがCSVファイルを選択し、CSVファイルを読み取るという単純なプログラムです。

質問の内容として、CSVファイルを選択し、それを読み取るとこまでできましたが、表示ができていません。CSVの内容を表示する方法はあるでしょうか?

このプログラムの実行結果はnilとなってしまいます

Ruby

1#! ruby -Ks 2 3STDOUT.sync = true 4 5require 'tk' 6require 'csv' 7 8TkRoot.new do#タイトルバーの表示 9 10 title( "ファイル選択ボタン" ) 11 12end 13 14chek_file = TkLabel.new do #選択したファイル名を表示 15 16 pack 17 18end 19 20TkButton.new do 21 22 text("ファイル「選択」ボタンを押す") 23 24 command do 25 26 chek_file.text("") 27 28 select_file = Tk.getOpenFile( 29 30 "filetypes" => [ ["csv",".csv"],#表示可能な拡張しを表示 31 32 ["all", ".*"]], 33 34 "defaultextension" => ".csv") 35 36 chek_file.text( select_file ) 37 38 test = CSV.read(select_file) 39 40 end 41 42 pack 43 44end 45 46print test

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Tkは使ったことがないので、よくわかりませんが、最後の行でprintしている変数testは、
TkButton.new doブロックの中で宣言されているので、
スコープ外のprint testでは読み出せないのでは?

TkButton.new doブロックの外で初期化しておけば、
問題なく表示できるように思います。

Ruby

1# 前略 2test = "" 3TkButton.new do 4 # 中略 5 test = CSV.read(select_file) # <=ここできちんと読み出せてるなら 6 # 中略 7end 8print test # <= ここでも読み出せるはず

投稿2015/10/23 07:18

編集2015/10/23 07:21
rifuch

総合スコア1901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問