Как я могу читать двоичный файл по разделам?

Как я могу читать двоичный файл по разделам? (прочтите, перейдите вперед, прочтите еще, ...)

Я попробовал fn (f &File) read_bytes(size int) функция, но был удивлен, что он всегда читается спереди.

Действительно ли нам нужно повторно реализовать C File структура (которая V также повторно реализует) для отслеживания текущей позиции файла?

1 ответ

Вы можете использовать File.read_bytes_at. Следить за позицией нужно самостоятельно:

import os

path :='v.exe'
size :=1024*256

mut f := os.open(path) or {println(err) return}
for pos := 0;; pos += size {
    arr := f.read_bytes_at(size, pos)
    println(arr.len)
    if arr.len == 0 {break}
}
f.close()

Для меня это дает следующий результат:

262144
262144
262144
262144
186094
0
Другие вопросы по тегам