【问题标题】:how to read binary file data using dlang如何使用 dlang 读取二进制文件数据
【发布时间】:2016-12-14 09:27:35
【问题描述】:

我正在尝试从二进制文件中的特定位置读取结构数据。 发现我可以使用 import std.stdio 及其文件,但是我似乎发现的都是关于字符串处理的。

据我所知,我在二进制文件上使用 c 代码编写的数据,这些数据由几个不同的结构组成,并且它们都在一个单行中。为了找到特定的结构,我需要像在旧 c 中一样,

  1. 打开文件读取....(二进制读取??)
  2. 使用 sizeof 并移动到要读取的结构数据的起始位置
  3. 将数据(struct.sizeof 数据)读入接收缓冲区并
  4. 关闭文件

Documentation for std.stdio.File # read 谈论阅读整个或最大尺寸但找不到如何阅读如下 c 代码行?

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

有什么想法或提示吗?

【问题讨论】:

    标签: c++ c struct d


    【解决方案1】:

    试试File.seekFile.rawRead。它们的工作方式与 C 对应物类似,但 rawRead 根据您提供的输出缓冲区的大小确定读取计数。

    【讨论】:

    • 谢谢 rcorre,这就行了。至少到现在为止,现在我继续投射数据......并使用我的新代码;)
    猜你喜欢
    • 2021-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-10
    • 1970-01-01
    • 2020-06-09
    • 1970-01-01
    • 2011-11-22
    相关资源
    最近更新 更多