Problema Ruby e NetBeans
-
13-09-2019 - |
Pergunta
Estou lendo um arquivo linha por linha em um programa simples e quando imprimo as linhas na tela a última linha não pode ser vista na janela de saída do Netbeans 6.5.1 IDE no Windows XP mas quando executo o programa diretamente da linha de comando como "ruby main.rb" não há problema (ou seja, a última linha pode ser vista). Estou usando Ruby 1.8.6. Aqui está o código completo:
File.open("songs.txt","r") do |file|
file.each do |line|
print line
end
end
Solução
Isso funcionará melhor se você usar puts
que acrescentará um terminador de nova linha se ainda não houver um no final da linha, forçando uma liberação de buffer.
Outras dicas
Eu nunca me deparei com isso antes, mas meu palpite é que sua linha final não tem uma quebra de linha final, então o console do Netbeans não está liberando a linha.Tente adicionar $stdout.flush
no final do programa e veja o que acontece.
A propósito, você pode simplificar um pouco esse código reescrevendo-o usando foreach
:
File.foreach("songs.txt","r") do |file|
print line
end