2010-08-10 8 views
6

में एक और फ़ाइल पर लिखने मैं:आसान सवाल: फ़ाइल पढ़ें, यह रिवर्स और रूबी

o = File.new("ouput.txt", "rw+") 
File.new("my_file.txt").lines.reverse_each { |line| 
     ????? line 
} 
o.close 

मैं क्या विधि फ़ाइल आउटपुट o

+0

आपको मेटा टैग का उपयोग नहीं करना चाहिए। इसे देखें: http://blog.stackoverflow.com/2010/08/the-death-of-meta-tags/ – HoLyVieR

उत्तर

6

puts, सरणियों समझता है तो आप को यह सरल बना सकते हैं। इस तरह की चीज़ के लिए Elif जैसे मणि का उपयोग करने पर विचार करें।

+0

इस बारे में भी सोचा नहीं, अच्छा। – RyanScottLewis

+0

मैं दूसरी फाइल को लिखना नहीं चाहता हूं। मैं केवल इसे कंसोल पर प्रिंट करना चाहता हूं। मैं यह कैसे करुं ? – stack1

0

मुझे पता था कि लिखने के लिए उपयोग करने के लिए पता नहीं है यह आसान था, जो मुझे काफी नहीं मिलता है वह here दस्तावेज क्यों नहीं है?

o = File.new("ouput.txt", "w+") 
File.new("my_file.txt").lines.reverse_each { |line| 
    o.puts line 
} 
o.close 
+0

out.puts या o.puts? –

+2

यह वहां दस्तावेज नहीं है क्योंकि 'puts' वर्ग 'फ़ाइल' का सदस्य नहीं है। यह वास्तव में कक्षा 'आईओ' का सदस्य है, और वर्ग 'फाइल' 'IO' का उप-वर्ग है। इसके लिए प्रलेखन यहां है: http://ruby-doc.org/core/classes/IO.html – bta

0

आप क्या w+ साधन यह पता लगाने की

new_text = File.readlines('my_file').reverse.join 
File.open('my_file', 'w+') { |file| file.write(new_text) } 

बाहर this documentation चेक वाला चाहता हूँ की तरह कुछ अधिक करना हो ...। ,,

File.open("f2.txt","w") {|o| o.puts File.readlines("f1.txt").reverse} 
0

बड़ी फ़ाइलों के लिए readlines उपयोग करने से बचें के रूप में यह वास्तव में धीमी गति से/अक्षम हो जाएगा:

संबंधित मुद्दे