从二进制/随机访问文件中读取数据

Reading data from a Binary/Random Access File

本文关键字:读取 数据 文件 访问 二进制 随机      更新时间:2023-10-16

我有一个二进制格式的文件,其中包含大量数据。

如果我了解文件结构,如何从二进制文件中读取信息,并填充这些结构的记录?

数据很复杂。

我想用Qt来做,但如果需要的话,我也会在C++中做。

感谢您的帮助..

如果二进制文件真的很大,那么如果通过低级读取功能有足够的 RAM 可用,最好将其加载为 (char*) 数组 http://crasseux.com/books/ctutorial/Reading-files-at-a-low-level.html然后你可以解析它。

但这只会帮助您加载大文件,而不是解析复杂的结构。

不确定,但你也可以看看yacc。

这听起来不像 yacc 将是一个解决方案,他不是在尝试解析文件,而是想将二进制格式的数据读取到数据结构中。

您可以读取 中的数据,然后将其映射到与格式匹配的结构。 如果数据很复杂,则可能需要以多种方式在其上放置结构,具体取决于数据布局的工作方式。 因此,基本上将文件读入 char* 或然后选择结构开始的元素,将该元素强制转换为指向 stuct 的指针,然后访问该元素。 没有更多的细节,不可能比这更具体。

http://courses.cs.vt.edu/~cs2604/fall00/binio.html 会对你有所帮助。我从那里学到了东西。(提示始终将数据转换为(char*))。