Какой лучший способ написать и прочитать двоичные файлы в Nim? Я хочу написать переменные поплавки и ints в двоичный файл, а затем прочитать этот файл. Чтобы написать этот двоичный файл в Python, я бы сделал что-то вроде
import struct
# list of alternating floats and ints
arr = [0.5, 1, 1.5, 2, 2.5, 3]
# here 'f' is for float and 'i' is for int
binStruct = struct.Struct( 'fi' * (len(arr)/2) )
# put it into string format
packed = binStruct.pack(*tuple(arr))
# open file for writing in binary mode
with open('/path/to/my/file', 'wb') as fh:
fh.write(packed)
Чтобы читать, я бы сделал что-то вроде
arr = []
with open('/path/to/my/file', 'rb') as fh:
data = fh.read()
for i in range(0, len(data), 8):
tup = binStruct.unpack('fi', data[i: i + 8])
arr.append(tup)
В этом примере после прочтения файла arr будет
[(0.5, 1), (1.5, 2), (2.5, 3)]
Ищите аналогичную функциональность в Nim.