2015-03-04 3 views
-1

У меня есть текстовый файл с именем text.txt, и имеет следующий текст:Удаление строки информации из текстового файла

123,shirt,9.99 
234,pants,19.50 
456,socks,3.99 

Как удалить одну строку (например, 123, рубашки, 9,99) , Как я могу удалить эту строку?

Мой код до сих пор:

test_file = File.new('text.txt', "a") 
while (line = test_file) 
    puts 'Enter the products item number you wish to delete. ' 
    user_delete = gets.chomp.to_i 
    line.delete(user_delete) 
end 
+0

«а» просто дописывает к файлу он ничего не удалит. – Anthony

+0

Так что, если я хочу что-то удалить, я использую 'r +'? –

ответ

1

Вы делаете много ошибок здесь.

Прежде всего, открыв файл a (вам необходимо использовать r+ или w+).

В Ruby мы используем more elegant для перебора файлов.

Проверьте this answer, это поможет вам с вашей проблемой.

После этого посмотрите на IO library, чтобы понять, как все это работает

1

Я полагаю, что есть куча лучших способов сделать это, но вот быстрый и грязный:

puts "What's the item number?" 
item_num = gets.chomp 

read_file = File.new('read.txt', "r").read 
write_file = File.new('read.txt', "w") 

read_file.each_line do |line| 
    write_file.write(line) unless line.include? item_num 
end 
+0

удивительный, именно то, что я искал. В основном просто чтение файла и повторная запись его на номер элемента. Благодаря! –

+0

NP. Не стесняйтесь принимать и/или повышать этот ответ, если он затрагивает вашу проблему. – orde

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