最大 20 メッツのサイズのテキスト フィールドを生成するプログラムがあります。ファイルの最後の行だけを気にすることがありますが、残りのファイルを読んでメモリを浪費することなく、その行だけを読む方法はありますか?
4538 次
2 に答える
4
私は間違っているかもしれませんが、いくつかのトリックに頼らなければ、できないようです. ただし、行の長さの大まかな見積もりがある場合は、ファイルを開いて、たとえば 1Kb の末尾からシークできます。
local f = io.open([[c:\test_file.txt]], "r")
local len = f:seek("end")
f:seek("set", len - 1024)
local text = f:read("*a")
print(string.match(text, "[^%c]*$"))
f:close()
お役に立てれば。パターンを改良する必要があることを考慮してください。現在、制御文字が行に表示されないと想定しています。行にタブがある場合、そこからファイルの終わりまでキャプチャされます。
于 2009-01-31T00:00:15.743 に答える