我正在做的是:有一個文件作爲輸入,另一個作爲輸出。我在輸入中選擇了一個隨機行,將它放在輸出中,然後刪除它。Ruby:刪除上次迭代的項目?
現在,我已經遍歷該文件,並在我想要的行上。我已將其複製到輸出文件。有沒有辦法刪除它?我正在做這樣的事情:
for i in 0..number_of_lines_to_remove
line = rand(lines_in_file-2) + 1 #not removing the first line
counter = 0
IO.foreach("input.csv", "r") { |current_line|
if counter == line
File.open("output.csv", "a") { |output|
output.write(current_line)
}
end
counter += 1
}
end
所以,我有current_line,但我不知道如何從源文件中刪除它。
我不必重寫與該解決方案的來源,我只需要繼續重新使用從輸入複製的字符串它的一個例子。由於線條正在從字符串中刪除,所剩下的只是減小其總大小以匹配刪除的線條。我從來沒有用sqlite/bdb做過任何事情,所以我不知道如何繼續。我的sql知識只能選擇一些查詢。如果你有任何幫助我的例子,我會很感激。 – zxcvbnm 2010-01-08 16:04:16
Beanish有一個重寫下面的文件的例子,其中更改在運行之間保存。如果你沒有使用SQL的經驗,那麼SQLite可能會被過度殺死。 – tadman 2010-01-08 16:45:11