2012-11-09 94 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