【发布时间】:2019-03-30 12:40:22
【问题描述】:
我正在尝试格式化保存在 txt 文件中的伺服驱动器的原始数据反馈。数据是每 10 ms 伺服电机的位置和电压。
理想情况下,位置数据应位于一行中,而电压数据应位于另一行中,但事实并非如此,有时数据之间也会出现错误消息。
由于数据包含许多错误,有时两个数据会合并在一起,因此我将数据手动排列在保存数据的 txt 文件中。
在手动排列txt文件中的数据时,我先将数据分开。
第一个数据是位置数据(例如6130.0438232),它总是有12个字符(包括'.'点)和电压数据(看起来像0.0908446)9个字符(包括'.'点)。有关信息,请参阅所附图片。
问题是我想手动执行此操作,并想检查txt文件中的所有字符并根据我的需要进行格式化,如图所示。
希望大家给点建议
Files are available in this link too
原始数据:
>
>
6130.0
438232
0.0910353
!FF10
0.0910317
!FF10
!FF10
!FF10
!FF10
6130.0438232
!
FF10
6130.0438232
0.0908446
6130.0438232
0.1517510
6130.0438232
0.
1518797
613
0.0438232
0.1136887
6130.0438232
0.1133942
6130.0438232
0.0917661
6130.0438232
!FF10
32
5.7181644
!FF02
0.0912833
6130.0438232
!FF10
!FF10
0.0910270
6130.
0438232
0.0907409
6130.0438232
0.0907421
6130.043823
2
0.0906980
6130.0438232
0.0906491
6130.0438232
0.
1557195
6130.0438232
!FF10
6130.0438232
0.09
08780
!FF10
0.0908589
6130.0438232
0.0905549
6130.0438232
0.
0905442
【问题讨论】:
-
将原始数据发布为代码 sn-p。
-
你说:“第一个数据是位置数据(例如6130.0438232),它总是有12个字符(包括'.'点)”但它总是在点之前有四位数字吗?或者它总是十二个字符,在这十二个字符中anywhere?
-
位置数据为6130.04388232 mm(数值也包含十进制数字)实际上上面的数据中有12个字符代表舵机的位置(11个数字和一个点)。
-
没关系。 325 行只有 11 个字符,而不是 12 个字符。另外,还有哪些错误信息可能?我看到
!FF10和!FF02。 总是!F后跟两位数?你必须非常具体。 -
是的,错误总是跟在 !F 之后,并且 325 行(我找不到确切的行)可能缺少一些数据,这就是它的 11 个字符的原因。实际上,我必须删除这些错误,并且必须将插值数据放在无效值中。
标签: c# parsing file-handling