我正在使用ruby編寫一個簡單的編碼解碼程序。編碼器工作正常,但是,我無法正確解碼文件。它總是返回一個空白文本文件而不是一個很好解碼的文件。 下面的代碼:編碼解碼程序
編碼器,它工作得很好:
# Get evil idea and encode
print "Enter your diabolical scheme: "
$idea = gets
$encode1 = $idea.reverse
$encode2 = $encode1.capitalize
print $encode2
print"
"
#Save the jibberish to a new file
print "
File encoded. Please enter a name for this idea: "
idea_name = gets.strip
File::open("idea-" + idea_name + ".txt", "w") do |f|
f << $encode2
end
和解碼器,這是完全搞砸了:
#Get file to decode
print 'Name of file to decode:'
$name = gets
$file = $name << '.txt'
Dir[$file].each do |file_name|
$idea = read.File($file)
end
# Print each idea out with the words fixed
$decode1 = $idea.to_s()
$decode2 = $decode1.reverse()
$decode3 = $decode2.capitalize()
print $decode3
#Save decoded file to new location
print "
File decoded. Please enter a new name for this idea: "
idea_name = gets.strip
File::open(idea_name + ".txt", "w") do |f|
f << $decode3
end
如何使解碼器正確解碼的文本?
只是好奇,你爲什麼要把所有的變量都加上$?我從來沒有見過用Ruby代碼做過的事情。 – 2013-03-05 19:57:02
$ variable是一個全局變量,與@instance變量或@@ class變量相反,對嗎?這就是我被教導的方式。 – 2013-03-05 19:59:40
啊,你說得對。今天學到了新東西。 – 2013-03-05 20:00:54