【发布时间】:2010-11-30 01:22:55
【问题描述】:
我想知道解析无类型二进制文件的最佳方法是什么。例如,EBML 文件。 (http://ebml.sourceforge.net/)。 EBML 基本上是一个二进制 xml 文件。它基本上可以存储任何东西,但它目前的主要用途是 MKV 视频文件 (matroska)。
要在字节级别读取 EBML 文件,请读取标头以确保它是 EBML 文件并检索有关文件的信息。 MKV 文件可能很大,大小为 1-30gb。
二进制文件可以是任何东西,jpeg、bmp、avi 等... 我只是想学习如何阅读它们。
【问题讨论】:
-
非常模糊的问题。但我的回答可能会有所帮助。
-
嗯,我想在深入了解 EBML 格式之前打下基础。感觉 EBML 与大多数其他文件类型不同,感觉它基本上是 xml。我查看了其他组件以供参考,例如 Delphi 中的 Gif 和 Png 支持。
-
这里的例子展示了如何读取一个块,而不是单个字节......虽然我这样做是相当新的,但是对于 EBML 格式,它们使用可变大小的整数,它可能已经结束了此时我的头=)
-
要处理单个字节,@Logman,只需读取大小为 1 的块。
-
在不使用缓冲技术的情况下每次读取 1 个字节可能会非常慢。确实,操作系统会缓冲一些东西,但取决于要读取的数据量,这还不够。通常最好在内存中加载 n 个字节,然后从内存中工作。
标签: delphi binaryfiles