2010-08-10 11 views

cevap

6

puts, diziler anlar. Bu tür şeyler için Elif gibi bir mücevher kullanmayı düşünün.

+0

Bunu düşünmedik bile, güzel. – RyanScottLewis

+0

Başka bir dosyaya yazmak istemiyorum. Sadece konsolda yazdırmak istiyorum. Nasıl yaparım ? – stack1

0

dosya çıkışa yazmak için kullanmak hangi yöntemi bilmiyorum kolaydı, tam olarak anlamadığım şey neden here belgelenmemiş?

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

out.puts veya o.puts? –

+2

Orada belgelenmiyor çünkü “koyar”, “File” sınıfının bir üyesi değil. Aslında 'IO' sınıfının bir üyesi ve 'File' sınıfı 'IO'nun bir alt sınıfıdır. Bunun için belgeler şu adreste: http://ruby-doc.org/core/classes/IO.html – bta

0

Sen

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

Kontrol dışarı this documentation neyi w+ yollar düşünsünler ... isteyecek gibi bir şey daha yapmak konum. Büyük dosyalar için

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

readlines kullanmaktan kaçının o verimsiz/gerçekten yavaş olacak gibi: Eğer bu basitleştirmek böylece

İlgili konular