CSV 如何根据用户选择删除行
CSV How to delete row depending of user choice
你好我有一个程序,用户可以在其中写八卦,有作者和内容。我将其保存在 CSV 文件中。像这样:
author1,content1
author2,content2
author3,content3
我想用简单的 gets.to_i 询问用户他想删除哪一行。然后如果用户输入 2
将删除第二行。如果他进入 3
第三等...
如何根据用户选择删除 i 行?
你可以使用CSV::Table#delete
i = gets.to_i
table = CSV.table(file).by_row
table.delete(i)
我发现这个可以帮助别人:
def self.delete(index_to_delete)
gossips = Gossip.all # Creation tempory array
gossips.delete_at(index_to_delete - 1) # delete the choosen row
File.open("db/gossip.csv", "w") do |f|
f << "" # clean csv file
end
gossips.map { |g| g.save } # save the new array as csv (with an other def to save)
end
我确定这不是最好的方法,但确实有效!
你好我有一个程序,用户可以在其中写八卦,有作者和内容。我将其保存在 CSV 文件中。像这样:
author1,content1
author2,content2
author3,content3
我想用简单的 gets.to_i 询问用户他想删除哪一行。然后如果用户输入 2
将删除第二行。如果他进入 3
第三等...
如何根据用户选择删除 i 行?
你可以使用CSV::Table#delete
i = gets.to_i
table = CSV.table(file).by_row
table.delete(i)
我发现这个可以帮助别人:
def self.delete(index_to_delete)
gossips = Gossip.all # Creation tempory array
gossips.delete_at(index_to_delete - 1) # delete the choosen row
File.open("db/gossip.csv", "w") do |f|
f << "" # clean csv file
end
gossips.map { |g| g.save } # save the new array as csv (with an other def to save)
end
我确定这不是最好的方法,但确实有效!