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

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

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

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

Q&A

解決済

3回答

3529閲覧

rubyプログラムのexe化について

probaseball

総合スコア113

Ruby

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

0グッド

0クリップ

投稿2015/05/11 09:36

編集2015/05/11 09:41

CSVファイルを読み取るプログラムを作りました。

そこで、そのプログラムをexe化をしたいと思いいろいろやってみたんですが、うまくいきません。

そこで質問です。

CSV読み取りプログラムをexe化することはできるか?

出来たらその方法を教えていただけますでしょうか。

バージョンは最新のを使っております。

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

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

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

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

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

katzC4ISR

2015/05/11 09:46

やってみた,ことを詳しく書いてみましょう. exe化ということは,WindowsOS上で動作させたいわけですか? 私が知っているのはexerbというプログラムを利用するやり方です.
probaseball

2015/05/11 09:51

やってみたことは、ocraやexerbを使いexeファイルを作成しようとした。
katzC4ISR

2015/05/11 09:54

そのとき,どのように,うまくいかなかったのですか. エラーメッセージなど,詳しい内容を追記すると,具体的に助言してもらいやすくなると思います.
probaseball

2015/05/11 10:04

ご指摘ありがとうございます エラーメッセージのことですが、下記になります C:/Ruby21/lib/ruby/site_ruby/2.1.0/exerb/config.rb:17:in `<module:Exerb>': Use RbConfig instead of obsolete and deprecated Config. C:/Ruby21/lib/ruby/site_ruby/2.1.0/exerb/config.rb:17:in `<module:Exerb>': Use RbConfig instead of obsolete and deprecated Config. exerb: read_csv.ruby: general block must be Hash object -- String
katzC4ISR

2015/05/11 11:17

exerb: read_csv.ruby: general block must be Hash object -- String ということなので,元のrubyプログラムが何かおかしいんでしょう. このエラーはブロックが必要なところがStringになっている,ということのようなので, .method(){...}を期待しているところが,単に.method(...)になっているとか. そういうことではないでしょうか. 元々のプログラムは,目的通りに動きましたか?
probaseball

2015/05/11 17:07

ソースはこの状態で require "csv" #パス指定 Dir.chdir("./Desktop/file") #CSV読み込み CSV.foreach("inpoto.csv",:encoding=>"sift-zis"){|row| p row} #パス指定終了 dir.close
probaseball

2015/05/11 17:11

実行した段階で、 C:/Ruby22-x64/lib/ruby/2.2.0/csv.rb:1256: warning: Unsupported encoding sift-zis ignored read_csv.ruby:14:in `<main>': undefined local var iable or method `dir' for main:Object (NameError) read_csv.ruby:14:in `<main>': undefined local variable or method `dir' for main:Object (NameError) が出ました
guest

回答3

0

おっと,寝ている間に解決したようですね.

lang

1require "csv" #パス指定 2 3Dir.chdir("./Desktop/file") #CSV読み込み 4CSV.foreach("inpoto.csv",:encoding=>"sift-zis"){|row| p row} #パス指定終了 5dir.close 6

たぶん,.::の違いではないと思いますが...

lang

1require "csv" #パス指定 2 3Dir.chdir("./Desktop/file") { #CSV読み込み 4 CSV.foreach("input.csv",:encoding=>"Shift-JIS"){|row| print row} #パス指定終了 5}

だと思います.エラーメッセージが少なくとも出ないプログラムにしてから
exe化しましょう.

投稿2015/05/11 23:22

katzC4ISR

総合スコア66

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

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

0

自己解決

katzC4ISRさん、landy77さん、返信ありがとうございました。
自己解決ができましたので報告させていただきます。
やり方としては、landy77さんが張ってくれたURLを参考にしできました。
Rubyのエラーに対してですが、パス指定をする際、「Dir.chdir("ファイル場所")#パス指定」としていましたが、それを「Dir::chdir("ファイル場所")#パス指定」にしたところ、エラーが無くなり、exeファイルの作成に成功しました。
また、URLに書いてあるEVN~は無くてもDir::chdirで出来るのでそれは書かなくてもいいです。(書いたとしてもコメントにしとけば・・・)
私がもう1つ参考にしたディレクトリ関係のURLを張っておきますので、この質問をみられた方の参考になれば嬉しいです
http://www.namaraii.com/rubytips/?ディレクトリ

投稿2015/05/11 18:03

probaseball

総合スコア113

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

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

0

Rubyはそこまで詳しくないので多少妄想なのはお許しください。

一応こんな記事が見つかります。
http://qiita.com/t_oginogin/items/9f989f9b5dc5b3e08994

ただ読んでわかりますが、最新だと出来なかったって書いてあります。
要するに本来は必要ない・やるべきではないってことではないかと。

極論を承知の上言うとスクリプト言語自体がWindowsで言う「exe化」せずに動作させる事を目的とする言語だと思うので本末転倒である事は理解するべきだと思います。

投稿2015/05/11 14:34

landy77

総合スコア1614

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問