2013-05-18 26 views
-2

我有红宝石的功课有问题。查找在TXT特定字符通过索引

有1000个字符(一个每行)
txt文件所以程序询问用户9个号码0..999
,它应该发现,并从文件打印9个字符

实施例之后输出
给1号之间0-999:999:0-999之间444
给2.号码:0-999之间756
给3.号码:0-999之间223
给4.数
给5.数之间0-999:给44
:0-999之间0
给6.号码:0-999之间123
给7.号码:0-999之间23
给8.数9. 0-999之间的数字:533
你的话是ryqbaAsQn

这里是我的代码

#coding:utf-8 
path = "7-3_tiedosto.txt" 
lst = Array.new 
word = Array.new 
text = "" 

puts "Luodaan salasana." 

for i in 1..9 
    print "Anna #{i}. luku väliltä 0-999: " 
    lst.push(gets.to_i) 
end 

my = File.open(path, "r") 
my.each{|line| word.push(line.chomp)} 
my.close 

for i in 0..8 
    a = lst[i] 
    text = text << word[a] 
end 

puts "Ohjelma loi salasanan #{text}" 
+4

你的问题是什么? –

+0

它给最后一个循环的错误, 像字数组包含零 那么从txt获取特定行的方法是什么以及为什么 数组“字”可能包含零? – Satael

+0

+1承认它是功课 –

回答

0

这看起来像一个很好的机会来熟悉红宝石调试。当您的程序状态与预期不同时,会出现类似问题。这是由你来弄清楚为什么状态与你期望的不同,然后采取纠正措施。

我建议你尝试:1)使用put语句打印出程序的状态,而你的程序执行或2)使用Ruby调试步骤通过你们的节目,因为它正在运行,以验证状态。

这里的调试底漆:http://ruby.about.com/od/advancedruby/a/debugging.htm

希望帮助!这些问题总是出现,所以学习如何处理这些问题很重要。祝你好运。