2016-12-14 5 views
0

Я пытаюсь прочитать данные структуры из определенной позиции в двоичном файле. Обнаружил, что я могу использовать import std.stdio и его File, однако все, что я, похоже, все-таки касается обработки строк.Как читать данные двоичного файла с помощью dlang

У меня есть c-код, записанный на двоичные файлы, которые составляют несколько разных структур, и все они, насколько я понимаю, кодируются в oneliner. Для того, чтобы найти конкретную-структуру мне нужно, как и в старом с,

  1. Открыть файл для чтения .... (двоичный для чтения ??)
  2. с помощью SizeOf и перейти к StartPosition из структуры данных для чтения
  3. чтение данных (struct.sizeof данные) в receivingbuffer и
  4. Закрыть файл

Documentation for std.stdio.File # read говорит о чтении всех или до размера, но не может найти, как читать, как показано ниже с-строки кода?

fseek(filehandle, sizeof(firstStructData), SEEK_SET)); 
read(filehandle, (char *)nextReceivingBuffer, sizeof(nextReceivingBuffer)) 

Любые идеи или подсказки?

ответ

0

Пробег: File.seek и File.rawRead. Они работают как их аналоги C, но rawRead определяет количество отсчетов от размера выходного буфера, которым вы его передаете.

+0

Спасибо, rcorre, что делает трюк. по крайней мере до этого момента, теперь я продолжаю передавать данные ... и играть с моим новым кодом;) –