, 안녕하세요, 친구! 저는 루아 5.1과의 호환성을 제가 작업하고있는 라이브러리에 추가하려고 시도 했었습니다. 원래 루아 5.3에 쓰여졌습니다. 지금까지는 모든 것이 상당히 잘 진행되었습니다.루아에서 이진 파일의 모든 바이트를 읽을 수 없습니다.
나는 행동에 대해 비틀 거리며 나는 그 원인에 대한 단서가 전혀 없다. 여기에 문제가 있습니다 : 분명히 루아 5.1에서 바이너리 파일을 제대로 읽을 수 없습니다. 명확하게하기 위해이 테스트 스 니펫을 실행하면 실행 된 버전에 따라 출력이 달라집니다. 루아 5.1을 사용하여
local f = io.open("test.bin", "wb")
local t = {}
for i=1, 256 do t[i] = i-1 end
local unpack = unpack or table.unpack
local str = string.char(unpack(t))
f:write(str)
f:close()
f = io.open("test.bin", "rb")
local buffer = {}
for line in f:lines() do
print(#line)
for i=1, #line do
buffer[#buffer+1] = string.byte(line:sub(i,i))
end
end
print('Total:', #buffer)
f:close()
: 루아 5.3을 사용하여
245
Total: 245
:
10
245
Total: 255
그래서, 내가 그것을 볼 수있는 방법은 버전 5.1은 단순히 파일의 첫 번째 "라인"을 점프 즉 몇 가지 이유.
도움이 될 것입니다.
나는 본다. 그것은 일했다, 고마워. :) –