A
Size: a a a
S
io.open
:local file = io.open("path/to/file.fmt", "rb")
Второй аргумент — режим открытия файла. Тебя интересуют в основном три режима:r
— режим чтения, курсор в начале файлаw
— режим записи, содержимое файла очищается в момент открытия в этом режимеa
— режим дополнения, содержимое файла сохраняется, курсор установлен в конец файлаb
" ("wb
/rb
/ab
") — оно начнёт читать/писать в бинарном формате, без дополнительной пред/постобработки файлов. Крайне советую использовать его ВСЕГДА, потому что пред-постобработка может сильно мешать парсингу файла.+
" — текущий режим открытия начинает работать и на чтение, и на запись. То есть можно одновременно считывать и записывать этот файл, а режим "ab+
" позволяет дополнять файл, считывать его содержимое и дописывать.local file = io.open("bla.txt", "rb")Курсор — текущее положение в файле, буквально как будто ты открыл его в блокноте и двигаешь кнопками-стрелками курсор, при чтении и записи — курсор перемещается на новую позицию.
local block1 = file:read(30) -- считываем первые 30 байт
local block2 = file:read(20) -- считываем следующие 20 байт
file:seek("mode", bytes)
. Им можно перемещать курсор на конкретную позицию в байтах seek:("set", 100500)
, в начало ("set", 0)
и в конец ("end")
файла. function fsize (file)Соответственно, в режиме записи, можно передвинуть курсор на нужную позицию и вписать в середину файла кусочек данных. Но так как файл может расширяться только с конца, оно перетрёт то что было на тех байтах, в которые встало то что ты записал (как ввод текста с включённым
local current = file:seek() -- get current position
local size = file:seek("end") -- get file size
file:seek("set", current) -- restore position
return size
end
insert
на клавиатуре).file:close()
, потому что хендлер файла останется жив пока его не соберёт сборка мусора хрен знает когда.𝒓
io.open
:local file = io.open("path/to/file.fmt", "rb")
Второй аргумент — режим открытия файла. Тебя интересуют в основном три режима:r
— режим чтения, курсор в начале файлаw
— режим записи, содержимое файла очищается в момент открытия в этом режимеa
— режим дополнения, содержимое файла сохраняется, курсор установлен в конец файлаb
" ("wb
/rb
/ab
") — оно начнёт читать/писать в бинарном формате, без дополнительной пред/постобработки файлов. Крайне советую использовать его ВСЕГДА, потому что пред-постобработка может сильно мешать парсингу файла.+
" — текущий режим открытия начинает работать и на чтение, и на запись. То есть можно одновременно считывать и записывать этот файл, а режим "ab+
" позволяет дополнять файл, считывать его содержимое и дописывать.local file = io.open("bla.txt", "rb")Курсор — текущее положение в файле, буквально как будто ты открыл его в блокноте и двигаешь кнопками-стрелками курсор, при чтении и записи — курсор перемещается на новую позицию.
local block1 = file:read(30) -- считываем первые 30 байт
local block2 = file:read(20) -- считываем следующие 20 байт
file:seek("mode", bytes)
. Им можно перемещать курсор на конкретную позицию в байтах seek:("set", 100500)
, в начало ("set", 0)
и в конец ("end")
файла. function fsize (file)Соответственно, в режиме записи, можно передвинуть курсор на нужную позицию и вписать в середину файла кусочек данных. Но так как файл может расширяться только с конца, оно перетрёт то что было на тех байтах, в которые встало то что ты записал (как ввод текста с включённым
local current = file:seek() -- get current position
local size = file:seek("end") -- get file size
file:seek("set", current) -- restore position
return size
end
insert
на клавиатуре).file:close()
, потому что хендлер файла останется жив пока его не соберёт сборка мусора хрен знает когда.S
𝒓
𝒓
LU
LU
𝒓
𝒓
LU
𝒓
𝒓
LU
𝒓
𝒓