2012-11-09 72 views
1

我期待加快读取已经从二进制转换的数据文件(这是我的理解,“二进制”可能意味着很多不同的东西 - 我不知道什么类型的二进制文件文件我有,只是它是一个二进制文件)明文。我前一段时间很快就开始阅读文件,并被告知阅读/解析二进制文件比文本更快。所以,我想解析/读取二进制文件(已转换为纯文本),以加速该程序。 (我有一个Matlab“程序”,需要在文件中的数据)。我想我需要关于二进制的不同“类型”的一些信息,但我真的想要如何读/解析所述二进制文件的信息(我知道我在寻找明文,所以我想我需要转换即二进制,搜索文件,然后将结果取出为明文)。该文件是一个日志文件,如果这有帮助的话。Matlab解析二进制文件

谢谢。

+0

真的,如果不知道输入和输出文件的性质,以及查看代码来评估已完成的操作,就无法回答这个问题。 –

+0

这是否回到二进制文件的“类型”?我不熟悉二进制文件,所以我不明白“二进制”(1和0)是什么可以有不同的“类型”。就像我说的,我不知道所有关于日志文件格式的细节,但是我希望能够在周末把一些东西放在一起,这些东西在星期一可以修改,以匹配我的日志文件的细节。 – user1187621

+0

不,不,一切最终都代表'1'和'0',所以这个陈述太笼统了。 “二进制”文件意味着数据是以原始形式而不是文本ASCII形式书写的。例如,数字“28”将被写入文件中,例如1字节,其值为“0x1C”(等于28),而不是包含字符“2”的ASCII值的两个字节, 8',即'0x32 0x38'。这对你来说很清楚吗? –

回答

0

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

您想查看fread的文档。在文档中有代码片段可以让你开始,但是当我(和其他人)说你需要知道你的二进制文件的格式。如果您绝望,可以使用十六进制编辑器确定某些信息,但更快的是输出这些文件的程序的文档。

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

另一个我必须做的评论,你说“读取/解析二进制文件比文本快”。这是不正确的(或者即使是,你不会注意到性能增益)。然而,在开发时间方面,读取/解析文本文件将为您节省大量时间。

+0

谢谢!不是我正在寻找的(不是更快),但仍然非常感激。 – user1187621

0

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

+0

我已经有二进制文件(嗯,它在工作)。如果我必须在周一与某人讨论如何生成二进制文件,那么我会这样做,但我希望在本周末尝试开发一些代码,以便在周一有一个起点。 – user1187621