|
Here’s my test code:
print(_VERSION) local CR = string.char(13) local LF = string.char(10) local function writefile(name, content) local f = io.open(name, "w") f:write(content) f:close() end local function readfile(name, mode) local f = io.open(name, "r") while f do local l = f:read(mode) if l then local le = l:gsub(CR, "+CR"):gsub(LF, "+LF") if le:sub(1,1) == "+" then le = le:sub(2,-1) end print(#l, le) else f:close() f = nil end end end local lines = { -- "*L" result: "1234567890"..LF, -- 1 line, 11 bytes "1234567890"..LF..CR..LF, -- 2 lines, 11 bytes + 2 bytes "1234567890"..CR..LF, -- 1 line, 12 bytes "1234567890"..CR..LF..LF, -- 2 lines, 12 bytes + 1 byte "1234567890" -- 1 line, 10 bytes } lines = table.concat(lines) writefile("test.txt", lines) for _, mode in ipairs { "*l", "*L" } do print("\nTesting mode: "..mode) readfile("test.txt", mode) end Result on Mac:
Result on Windows:
|