2013-04-26 115 views
0

我正在做一系列關於如何在Ruby中編寫代碼的教程。我想用這個公式來讀取.txt文件:如何使用特定腳本在Ruby中讀取文件?

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。我嘗試了上述公式,似乎沒有任何工作。我很難理解如何使用ARGVSTDIN.gets.chomp

我該怎麼辦?我要求你使用上面的公式。這個東西有點混亂,所以現在只需使用上面的公式。

+0

「特定腳本」是什麼意思?你的意思是「編碼」?什麼是「公式」? – 2013-04-26 14:06:43

+1

你是如何運行程序的:你究竟在命令行輸入了什麼?當你說什麼都不起作用時,你究竟是什麼意思:是否有錯誤信息? – FMc 2013-04-26 14:17:55

+0

@Jorg看到,我不知道我在做什麼的很多條款。我是一個初學者......我只知道非常基本的東西,所以這些對我來說都是全新的。但是要回答你的問題:由於我的問題已被編輯,我不知道我的意思是不是特定的腳本。我認爲這是我想要做的事。我說的公式就像在說「ARGV.first等等......」就像我說的,全新的。 – 2013-04-26 17:14:17

回答

2

該腳本起作用。你沒有解釋你試圖運行腳本的方式或者你看到的錯誤,所以幫助你很難。

如果在同一個目錄中的腳本名爲ex15_sample.txt一個文本文件(讓我們稱之爲script.rb),如果你有紅寶石設置正確,然後如果你用

 
$ 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.rb的文件中,則可以鍵入ruby script.rb。如果您的腳本位於具有不同名稱的文件中,則這不起作用。如果腳本位於名爲read-a-file.rb的文件中,則需要鍵入ruby read-a-file.rb

這個特定的腳本需要一個命令行參數後面的文件名。如果要讀取的文本文件位於名爲ex15_sample.txt的文件中,則需要在腳本名稱後面鍵入該文件。在前面的例子中,該命令將變爲ruby read-a-file.rb ex15_sample.txt。這隻有在文件位於同一個目錄(a.k.a.文件夾)時纔有效。

+0

好的,讓我試試看,我會回到你的錯誤信息 – 2013-04-26 18:00:00

+0

嗯,讓我問你這個問題。它與$ ruby​​ script.rb ex15_sample.txt它應該工作,你究竟是什麼意思?你的意思是從命令提示符?像前例:我輸入irb,然後輸入你放在上面,然後我應該得到沒有錯誤信息,也許這就是問題......也許我不知道該怎麼做,基本上我只是想讓Ruby閱讀.txt文件,這就是我所做的一切。 – 2013-04-26 18:15:47

+0

是,我沒有任何教程的問題,直到這一點。我不明白。 – 2013-04-26 18:16:19

相關問題