2016-12-14 58 views
0

我想从二进制文件中的特定位置读取结构数据。 发现我可以使用导入std.stdio及其文件,但是我似乎发现所有关于字符串处理。如何使用dlang读取二进制文件数据

我有c代码写在二进制文件的数据组成的几个不同的结构,他们都,据我了解编码奠定在一个oneliner。为了找到特定的结构,我需要,像老C,读取

  1. 打开文件...(二进制读?)
  2. 使用的sizeof并移动到结构数据的指定startPosition阅读
  3. 读取数据(struct.sizeof数据)到receivingbuffer和
  4. 关闭文件

Documentation for std.stdio.File # read会谈有关读取整个或最多大小,但无法找到如何如下C代码读取线?

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

任何想法或提示?

回答

0

尝试File.seekFile.rawRead。它们的工作方式与C相同,但是rawRead根据您输出的缓冲区大小确定读取计数。

+0

谢谢rcorre,这是诀窍。至少在这一点上,现在我继续投射数据......并且玩我的新代码;) –