2014-01-31 76 views
1

所以我有這段代碼把一些數字放到一個文本文件中。從文本文件中抽取隨機數

outFile = File.new("Demo.txt", "a+") 
outFile.puts (1..5).map{ '%05d' % rand(00000..99999) } 
outFile.close 
puts File.read("Demo.txt") 

我想知道我是否可以畫出一個已創建的隨機數。

+0

只需將文件中的所有數字讀入數組,然後選擇該數組的隨機元素。 –

+0

你可以粘貼你試圖解決它的代碼嗎? – BroiSatse

+1

此問題似乎無關緊要,因爲它沒有顯示任何解決方案嘗試。 – BroiSatse

回答

2

我下面做:

File.open("Demo.txt", "a+") do |file| 
    file.puts (1..5).map{ '%05d' % rand(00000..99999) } 
end 
# give you any random number from the file 
puts File.readlines("Demo.txt").map(&:strip).sample 

IO::readlines會給你你的文件裏面"Demo.txt"把所有的數字,作爲Array。現在Array#sample,將選擇一個隨機元素

爲什麼我用IO::open?閱讀下面相同的內容:

沒有關聯的塊,IO.open::new的同義詞。 如果給出了可選的代碼塊,它將作爲參數傳遞給io,並且當塊終止時,IO對象將自動變爲在這種情況下,::open返回該塊的值。

+0

謝謝!這將幫助我很多:) – user3143672

相關問題