1

Rubyを使い始めたばかりで、最初のプログラムはtxtファイルから読み取り、各行の変更されたバージョンを別の行に出力します。アイデアはこれを取得することです:

- Book Title *Book Author*

これに:

  Book Title     Book Author

私のコードは次のようになります:

listold = File.open('listas.txt', 'r+')
listnew = File.new('lista.txt', 'w+')
listold.each_line {|line|
  nome, autor = line.split(' *')
  nome['- '] = '  '
  autor = autor.chomp('*')
  listnew.puts nome << "\t" << autor
}

私が抱えている問題は、ファイルの最後の行でのみ機能することです。他のものは\t間隔が非常に狭く、最後の*はカットされません。誰か助けてもらえますか?

4

1 に答える 1

1

分割は、スペースの後に*が続くものと一致します。

'*'の代わりに'*'で分割することをお勧めします。

私はあなたのコードを試しました、それは私のテストファイルのすべての行で機能します。

于 2012-07-15T21:56:03.537 に答える