0

Ruby でのコーディング方法に関する一連のチュートリアルを行っています。この式を使用して .txt ファイルを読みたい:

filename = ARGV.first

prompt = "> "
txt = File.open(filename)

puts "Here's your file: #{filename}"
puts txt.read()

puts "I'll also ask you to type it again:"
print prompt
file_again = STDIN.gets.chomp()

txt_again = File.open(file_again)

puts txt_again.read()

テキストファイルは次のとおりです。

This is stuff I typed into a file. It is really cool stuff.
Lots and lots of fun to have in here.

テキストファイルの名前はex15_sample.txt. 上記の式で試してみましたが、何も機能しないようです。ARGVとの両方の使い方がよくわかりませんSTDIN.gets.chomp

私は何をすべきか?上記の式を使用してください。これは少しややこしいので、今のところは上記の式を使用してください。

4

1 に答える 1

2

スクリプトは機能します。スクリプトをどのように実行しようとしているのか、どのようなエラーが表示されているのかを説明していないため、お手伝いするのは少し難しいです。

ex15_sample.txtスクリプトと同じディレクトリに名前の付いたテキスト ファイルがあり(名前を付けましょうscript.rb)、Ruby が適切にセットアップされている場合は、次のように実行します。

$ ruby​​ script.rb ex15_sample.txt

すべてがうまくいくはずです。

最初の行を常に使用するように変更しようとしている場合はex15_sample.txt、必ず引用符で囲んでください。

filename = "ex15_sample.txt" # Without the quotes, you'll get an error.

繰り返しますが、スクリプトをどのように実行しているか、またはどのようなエラーが発生しているかを正確に知らなければ、支援することは困難です。

更新: Ruby スクリプトの実行方法が明確でないことが問題のようです。最も簡単な方法は、システムのコマンド プロンプトでruby、スペースを入力してから、Ruby スクリプトを含むファイルの名前を入力することです。スクリプトが という名前のファイルにある場合はscript.rbruby script.rb. スクリプトが別の名前のファイルにある場合、これは機能しません。スクリプトが という名前のファイルにある場合は、read-a-file.rbと入力する必要がありますruby read-a-file.rb

この特定のスクリプトでは、ファイル名の後にコマンド ライン引数が必要です。読みたいテキスト ファイルが という名前のファイルにあるex15_sample.txt場合は、スクリプト名の後にそれを入力する必要があります。前の例では、コマンドは になりruby read-a-file.rb ex15_sample.txtます。これは、ファイルが同じディレクトリ (別名フォルダー) にある場合にのみ機能します。

于 2013-04-26T17:55:52.867 に答える