1

我希望加快读取已从二进制转换的数据文件(我的理解是“二进制”可能意味着很多不同的东西 - 我不知道我有什么类型的二进制文件,只是它是二进制文件)到纯文本。不久前我研究了快速读取文件,并被告知读取/解析二进制文件比文本更快。因此,我想解析/读取二进制文件(已转换为纯文本)以加快程序速度。

我正在为这个项目使用 Matlab(我有一个需要文件中数据的 Matlab“程序”)。我想我需要一些关于二进制不同“类型”的信息,但我真的想要关于如何读取/解析所述二进制文件的信息(我知道我在寻找纯文本,所以我想我需要转换将其转换为二进制,搜索文件,然后将结果提取为纯文本)。该文件是一个日志文件,如果有任何帮助的话。

谢谢。

4

2 回答 2

0

将数据存储在二进制文件中的简单方法是使用“保存”命令。如果从保存的变量加载,它应该比从文本文件加载要快得多。

于 2012-11-09T22:12:27.037 回答
0

您要问的问题有几个问题-但是,您需要知道正在阅读的文件的格式。如果您可以说“在位置 xx,我可以期望找到数据 yy”,那就是您需要知道的。在您的问题/评论中,您谈论搜索字符串。你也可以这样做(很像一个文本文件)“当我在文件中找到 xxxx 时,给我以下数据,直到第 n 个字符,或者直到下一个 yyyy”。

您想查看fread. 在文档中有一些代码片段可以帮助您入门,但正如我(和其他人)所说,您需要知道二进制文件的格式。如果您不顾一切,您可以使用十六进制编辑器来确定一些信息,但应该更快的是输出这些文件的程序的文档。

关于不同的“二进制文件”,好吧,最低有效字节在前或 LSB 在后。对于这项工作,你真的不需要知道这一点。还有其他与平台相关的问题,我几乎可以肯定您不需要知道(除非您将二进制文件从 Mac 移动到 PC 到 unix 机器)。如果您几乎阅读到fread文档的底部,则有一个标题为“阅读在其他系统上创建的文件”的部分讨论了这些问题以及如何处理它们。

我必须发表的另一条评论是,您说“读取/解析二进制文件比文本更快”。这不是真的(或者即使是这样,您也很可能不会注意到性能提升)。然而,就开发时间而言,读取/解析文本文件将为您节省大量时间。

于 2012-11-10T05:09:22.017 回答