我想要做的是這樣做,從文件中讀取,在一行上輸出文件的每一行,並且如果輸出不匹配匹配輸入,進入下一個在同一行,例如:如何用新行覆蓋當前行以僅保留一行數據
文本文件:
hello
goodbye
yes
no
why
maybe
okay
tomorrow
代碼:
def compare(input)
File.readlines('test.txt').each do |word|
if word == input
puts "Found a match! #{word} == #{input}"
else
loop do
puts "Comparing #{input} to #{word}" #<= Overwrite the current compared word, with the new compared word
$stdout.flush
end
end
end
end
我該如何去正確地這樣做呢?我相信,我可以使用\r
然而,除去線的時候我加入\r
,這是運行它的輸出:
Comparing why to word
Comparing why to word
Comparing why to word
Comparing why to word
Comparing why to word
Comparing why to word
Comparing why to word
我可以得到一個實例,最接近的是,如果你複製@ Sculper的答案並運行它在IRB
(1..5).each do |i|
print "test #{i}\r" # Courtesy of @Sculpur
$stdout.flush
sleep(1)
end
可以給出示例輸入和預期輸出嗎?現在我不明白你想達到什麼:) – niceman
@niceman這將是很難舉一個例子,我的意思是這個我想從文件中的單詞出現在最後一個字的位置該文件,例如:'比較爲什麼你好'你好將被替換爲'再見'而不會去一個新的行。 – Donovan
歡迎來到Stack Overflow。請閱讀「[問]」,包括鏈接的頁面和「[mcve]」。我們需要一個可用的輸入和期望輸出的例子。它可以幫助我們幫助你,並且它可以幫助其他人瞭解你的問題,以及它是否符合他們看到的問題,這是什麼。 「我想要做的是這樣做,從文件中讀取,在一行上輸出文件的每一行,如果輸出不匹配匹配的輸入,則轉到同一行上的下一行」沒有多大意義。 –