2010-01-13 6 views
138

Comment faire pour que \n fonctionne réellement dans ma sortie? En ce moment, il écrit tout simplement dans un long bloc. Merci pour toute aideComment faire un retour à la ligne dans la sortie

Dir.chdir 'C:/Users/name/Music' 
music = Dir['C:/Users/name/Music/*.{mp3, MP3}'] 
puts 'what would you like to call the playlist?' 
@new = '' 
playlist_name = gets.chomp + '.m3u' 

music.each do |z| 
    @new += z + '\n' 
end 

File.open playlist_name, 'w' do |f| 
    f.write @new 
end 

Répondre

286

Utilisation "\n" au lieu de '\n'

+8

Merci pour la réponse, me fait ressembler à un imbécile, mais au moins je sais maintenant – babyrats

+61

ne soyez pas si dur avec vous-même: la seule façon d'apprendre est de poser des questions. –

+13

@babyrats - vous n'êtes pas le seul :) – Ninad

12

Vous pouvez faire tout cela dans le bloc File.open:

Dir.chdir 'C:/Users/name/Music' 
music = Dir['C:/Users/name/Music/*.{mp3, MP3}'] 
puts 'what would you like to call the playlist?' 
playlist_name = gets.chomp + '.m3u' 

File.open playlist_name, 'w' do |f| 
    music.each do |z| 
    f.puts z 
    end 
end 
+1

Je suppose qu'une chose intéressante et utile à enlever de ceci est que 'puts' sort une chaîne et un saut de ligne arrière" automatique "; C'est plus pratique que de l'ajouter en code. –

+0

+1 pour cela et la manière symétrique et automatique de traiter un fichier. –

+0

Merci pour ça. Très utile. – babyrats

5

En fait, vous n'avez même pas besoin du bloc:

Dir.chdir 'C:/Users/name/Music' 
    music = Dir['C:/Users/name/Music/*.{mp3, MP3}'] 
    puts 'what would you like to call the playlist?' 
    playlist_name = gets.chomp + '.m3u' 

    File.open(playlist_name, 'w').puts(music) 
Questions connexes