Ege*_*rak 6 c# file-conversion
顺便说一下,我对 C#还很陌生,需要将.ddd(数字行驶记录仪输出文件扩展名)转换为.xml.
作为第一步,我应该阅读该文件,因此我正在查看示例。我找到的每个信息来源都使用 .txt基于读取文件的示例。在我的示例中,文件类型.ddd远不及此。
我正在考虑二进制读取,但也不确定。什么是正确的方法?
很晚的答案,但这个库是用 C# 编写的,并且支持数字行驶记录仪规范的大部分内容。
https://github.com/jugglingcats/tachograph-reader
该库提供了两个类,可以读取驱动程序和车辆卡二进制文件并写入 XmlWriter。XML 结构良好,为后续处理提供了二进制文件内容的清晰表示。请注意,该代码不会检查文件中的数字签名。
从自述文件:
用法很简单。有一个主类 DataFileReader 和两个子类:VehicleUnitDataFile 和 DriverCardDataFile。您可以使用以下方法创建子类之一的实例:
DataFile vudf=VehicleUnitDataFile.Create();
DataFile dcdf=DriverCardDataFile.Create();
Run Code Online (Sandbox Code Playgroud)
一旦你有了一个 reader 实例,你就可以给它一个二进制文件来读取和一个 XML Writer:
vudf.Process("file.ddd", writer);
Run Code Online (Sandbox Code Playgroud)
满足两种数据文件格式的大部分部分/功能。可以使用 DriverCardData.config 和 VehicleUnitData.config 修改数据文件格式。这是两个 XML 文件,它们定义了具有特定于标准的功能(例如循环缓冲区支持)的数据结构。
要执行转换,您需要知道:
从文件中读取二进制数据相当简单 -BinaryReader有各种方法来访问数据,特别是如果数据可以在单个正向传递中处理(似乎就是这种情况)。那里有很多BinaryReader例子。
更重要的是了解数据的含义。单个字节的值0x20可能意味着:
32 UInt16该字节可能是具有完全不同值的 a 的第一个字节如果不了解每个位置的每个字节的含义,您将一事无成。
然后,有了这些信息,并将文件读入一些合适的类中,到 Xml 的转换就可以像将类传递给XmlSerializer.
| 归档时间: |
|
| 查看次数: |
11609 次 |
| 最近记录: |