【问题标题】:How to skip bytes in file read using stream如何跳过使用流读取的文件中的字节
【发布时间】:2011-03-15 01:24:23
【问题描述】:

我正在尝试使用 Fortran 从固定长度的数据中读取一些不连续的字段。我想从二进制文件中读取(流)一个由 4 个字节整数组成的数组,每个整数由 6 个字节分隔(即读取 4 个字节,跳过 6 个字节,读取 4 个字节,跳过 6 个字节,...)。我可以使用大小为 6 字节的虚拟变量;但是,我想知道 read 语句中是否有一个选项可以在读取数组的每个元素后跳过字节。提前感谢您的帮助。

埃里克

【问题讨论】:

  • 你只需要向前寻找。

标签: stream io fortran


【解决方案1】:

我认为您正在寻找的是直接访问文件:Direct-access files。在这里,您在OPEN 语句中指定每条记录的字节数,然后在READ 语句中指定要读取的记录。在您的情况下,记录长度为 10 个字节,您只使用每条记录的前 4 个字节。

就我个人而言,我只会使用一个虚拟变量和一个格式语句。我认为这会使最终的代码更加清晰,并且我认为不会有任何性能损失。

【讨论】:

  • 直接访问是指您希望能够以任何顺序处理记录,而不必按顺序处理。我认为这对这个问题来说是不必要的复杂化。我支持您的建议,即使用默认的顺序文件访问和虚拟变量。
猜你喜欢
  • 2012-08-03
  • 1970-01-01
  • 2011-11-18
  • 2018-11-25
  • 1970-01-01
  • 2014-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多