2012-07-15 3 views
1

Я только начинаю с Ruby, и моя первая программа читает из txt-файла и печатает измененную версию каждой строки на другую. Идея заключается в том, чтобы получить это:Чтение и изменение строк в файле с помощью Ruby

- 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 очень мал, а последний * не обрезается. Кто-нибудь может мне помочь?

ответ

1

Ваш раскол соответствует пробелу , за которым следует *.

Возможно, вы захотите разделить на '*' вместо '*'.

Я пробовал свой код, он работает для каждой строки моего тестового файла.

+0

Он работает только здесь, когда я меняю раскол, как вы предлагали. Я не понимаю, почему. Благодаря! –

+0

Странно. Я подозреваю, что это набор символов или аналогичная проблема. Newlines - CR, CR/LF или LF? Я нахожусь в Linux. – Satya

+0

Я думаю, LF, так как я нахожусь на Mac. –

Смежные вопросы