我有一个文件,其中包含嵌入式系统获取的一些数据的记录。
以下是一个例子:
<HISDAQ-V0.1;COMPRESSION(TOKEN-ESC(4X, 0x10, 7, 13, 15))>
<DAQPRJ>
<ANALOG>
<CHANNEL id='0' name='TKist' unit='°C' />
<CHANNEL id='1' name='RGTist' unit='°C' /> ....
</ANALOG>
<DIGITAL>
<CHANNEL id='0' bit='0' name='HK1MischerAuf' /> ....
</DIGITAL>
</DAQPRJ>
....
2012-04-10_00:00:00 pm 64.0 79.4 18.0 49.0 120.0 48.3 6683573.0 5.8 23.6 120.0 60.0 60@49.6 0.0 0.0 8 *8 5 8¡{13.4 -5.3 0 8à,8à6 8à 2 66838áU0.0 6.8 0 0 8 *8 7 8 3 18.08 3 66838¡U13.4 98À18À8 8Á{0.0 11.3 0 08À+8À9 8À2 18.08Áj13.4 9.8 0 08À+8À40 8Á{20.1 3.0 0 08À+8À1 8Á{6.7 3.8 0 0 8 *8 2 8¡{0.0 -68À18À3 8À3 78.18Ás14.3 08À-8À4 8Á4.5 0 8 ,8 5 8¡{20.1 6.8 0 08À+8À6 8Á{0.0 -08À18À7 8Á{13.4 9.1 0 08À+8À8 8À1 120.8Á`20.1 3.8 0 08À+8À9 8À0 18.0 49.0 8Ád6.7 5.3 0 0 8 *8 50 8¡{0.0 -3`8À+8À1 8Á6.8 0 8 ,8 2 8¡-1.5 08À-8À3 8À 7.9 188Ál6.7 3.0 0 0 8 *8 4 8¡{13.4 38À18À5 8À 8.0 188Ál0.0 4.5 0 0 8 *8 6 8¡{13.4 5.3 0 08À+8À7 8À 7.9 188Ál20.1 -3.0 0 8à,8à8 8á2.3 0......á
--- EOF---
(EOF来自我并且它不在文件中!)
我在网上搜索过但没有找到任何关于该文件格式的信息。
我看到首先有模拟和数字通道的描述(如列标题)然后跟随数据。但我无法弄清楚分隔符。
最好的办法是拥有一块可以处理该数据文件的C ++ / C#代码。
任何有帮助的人?
答案 0 :(得分:0)
这看起来很像XML,所以我很想看看.NET XML解析函数Here: might be a good place to start。我最近处理了很多XML,而且在C#中使用起来非常简单。
至于语法背后的含义(如每个属性/元素的含义以及如何在逻辑中使用它),只有您或专家才会知道。你可能不得不与客户/客户或同事一起坐下来找出那个。
希望有所帮助。
修改强>:
要阅读最后一节,您可以将整个文件作为字符串读取,然后创建它的子字符串 - 从最后一个&gt;的位置开始。并阅读直到EOF标记。这样,您就可以在字符串中包含“数据”,并且可以以任何您需要的方式进一步操作/解析它。
终止字符串的空字符通常是C#中的“\ 0”
答案 1 :(得分:0)
我没有使用过.daq文件 - 但这种方法可能会有所帮助,我将它用于“松散”或碎片化的XML文件,格式错误的文件等。
我认为你有'header' + XML + data
。
首先解析标题 - 看起来就像一个<>
- 或者也可能总是在线上。
在下一个开放<
(我猜这个格式但是看起来像这样)你启动XML。
搜索'end >'
- 您可以使用LastIndexOf - 应该这样做。
这就是你的XML,用LINQ加载它,例如XML - 然后rest
就是数据。
希望这会有所帮助