1

最大 20 メッツのサイズのテキスト フィールドを生成するプログラムがあります。ファイルの最後の行だけを気にすることがありますが、残りのファイルを読んでメモリを浪費することなく、その行だけを読む方法はありますか?

4

2 に答える 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 に答える