2015-08-15 40 views
-1

我已經寫了一些紅寶石來自動化批處理文件的創建,問題在於GUI中產生的輸出;Ruby文件輸出問題

enter image description here

的文件輸出,但格式看起來非常奇怪了。另外文件名都以'.txt'結尾,但MacOS不會以這種方式看到它。即您無法單擊以在Textedit中打開。

代碼如下;

puts "Please enter amount of files to create: " 
file_count = gets.to_i 
puts "Thanks! Enter a filename header: " 
file_head = gets 
puts "And a suffix?" 
suffix = gets 
puts "Please input your target directory:" 
Dir.chdir(gets.chomp) 


while file_count != 0 
    filename = "#{file_head}_#{file_count}#{suffix}" 
    File.open(filename, "w") {|x| x.write("This is #{filename}.")} 
    file_count -= 1 
end 

總是歡迎縮短長度或重構的提示。

+0

您的發佈代碼與您的GUI圖像沒有任何關係。請更新您的問題。 –

+0

上面的GUI是運行程序時指定的輸出位置 – Harry

回答

2

Kernel#gets文檔包含:

隔板包括與每個記錄的內容。

默認情況下,分隔符是一個換行符(請參閱$/)。所以file_headsuffix都以換行符結尾。當然,filename也是。因此,文件的擴展名不是.txt,因爲它實際上是".txt\n"(以Ruby字符串表示法)。應用程序會逐字地輸入換行符,並繼續在新行上寫入文件名。這就是爲什麼它看起來很奇怪!

你已經知道了解決這個問題的方法:致電String#chomp擺脫尾隨的換行符(分隔符)。舉例來說,請參閱代碼中包含Dir.chdir的行。

+0

太好了,謝謝,我不知道我怎麼沒發現 – Harry