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

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

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

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

Q&A

1回答

4245閲覧

キーボードからファイルパスの指定方法について

退会済みユーザー

退会済みユーザー

総合スコア0

Ruby

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

0グッド

1クリップ

投稿2015/09/25 06:36

こんにちは。最近プログラミングを始めた超初心者です。
rubyで文字列検索のプログラムを組んでいるのですが、どうしてもエラーが出てしまい困っています。
初歩的な質問になってしまうと思うのですが、お力を貸していただけると嬉しいです。

###実現したいこと
ファイルパスをユーザーが指定
任意の文字をユーザーが指定
指定されたファイルの中から一致する文字が何行目にあるか返す

###発生している問題・エラーメッセージ
ファイルのパスがうまくとってこれず?下記エラーが発生します。
Aptana Studio 3 Workspace/matching/all match.rb:16:in `initialize': Invalid argument @ rb_sysopen - yomikomi.txt (Errno::EINVAL)

###ソースコード

encoding: UTF-8

#!/usr/local/bin/ruby -Ke

puts("ファイルパスを入力してください")
hoge = gets
puts("検索する文字を入力してください")
moji=gets.to_s

#ファイルを開く
File.open("#{hoge}")do |file|
while line = file.gets
i = "#{line}".to_s
if(i==moji)
puts file.lineno
end
end
end

"#{hoge}" の部分を直接ファイル名にすると正常に実行できます。
その他書き方等ここが違うというものがありましたらご指摘お願いいたします。

###補足情報(言語/FW/ツール等のバージョンなど)
ruby 2.2.2
Windows7(32ビット)

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

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

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

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

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

guest

回答1

0

Rubyのgetsは、最後の改行文字まで取ってきてしまいます。

おそらくそれが原因ですので、hoge.chomp!として改行文字を取っ払いましょう。

投稿2015/09/25 07:46

maisumakun

総合スコア145183

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

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

yuk1m0r1

2015/09/25 15:28

本登録時に引き継ぎを行わなかったのですが、当質問をした者です。 ご回答ありがとうございました!無事に解決することができました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問