2010-07-05 111 views
3

我被分配了一個項目來創建一個新的二進制文件結構,用於存儲來自3D CAD/CAM軟件的座標信息。如果您指出一些關於創建新的二進制文件格式的文章或書籍,我將非常感激。感謝您的時間:)創建一個新的文件類型

+0

無論您最終使用什麼,請務必使用包含版本號的文件頭。你永遠不知道什麼時候你需要改變文件格式。 – 2010-07-05 19:46:00

回答

1

有一個通用的二進制(和緊湊)符號,稱爲ASN.1。它被廣泛使用,並且有關於它的書籍可用。 ASN.1可以與XML進行比較,但比XML更低一些(更原始但更靈活)。而XML,特別是上面提到的二進制XML,對你也是很有幫助的。 另外,如果您的文件中不止有一個數據序列,請參閱Solid File System作爲一個文件中多個數據流的容器。

+0

真的很棒。你搖滾! – rwik 2010-07-06 08:54:26

3

我會先看看wotsit.org其他類似的文件格式。該網站適用於各種不同的文件格式,幷包含指向其規格的鏈接。

通過查看其他文件格式,您將瞭解到如何最好地格式化並呈現有關規範的信息。

+0

+1資源不錯 – William 2010-07-05 19:45:13

1

如果我有相同的任務,我會檢查一些已經存在的東西,比如.OBJ,然後嘗試實現類似的東西,可能只需稍作更改。

1

簡短回答:不要。爲了可讀性,可擴展性和可移植性,改用XML或文本格式。

較長的答案:CAD/CAM有大量「傳統」格式。我希望使用其中的一種(如果有必要,可能會擴展它)。如果沒有什麼合適的,並且XML被認爲是膨脹和緩慢的,那麼看看Binary XML格式。

+1

不要使用二進制,除非當然數據量是巨大的。將二進制字節擴展爲文本,然後添加所有周圍的XML標記,通常使數據的大小加倍。另外,您必須解析XML以將其全部讀回。有時,二進制格式是最佳選擇。 – 2010-07-05 23:06:54

0

我認爲你真正需要的是找出你需要保存的數據。然後將其加載到內存中並將該內存序列化。

這是關於serialization in C++的教程。此頁面還解決了保存數據的許多問題