qq_35043039
牛翔没人爱
采纳率0%
2021-02-03 23:28

c# 解码未知格式的二进制文件

近来遇到一个二进制文件需要进行解析,来源R&S公司开发的EMC32软件。

不知道具体的格式,但是通过进程监视和文件对比分析能解析一小部分,哪位大佬能帮忙做一下解析二进制文件?

二进制文件格式比较简单, 主要是格式转换有点麻烦,不知道有什么好的方法能处理呢。最好有处理的代码(IO实在是了解不多)

部分源码:

 90 05 00 00 00 45 00 4D 00 43 00 33 00 32 00 9A
 99 99 99 99 99 20 40 03 00 00 00 00 00 00 00 38
 9C 7C 41 00 00 00 00 65 CD DD 41 4C 00 00 00 50
 5B 3A 53 F4 95 09 00 65 6B 7F 95 09 00 C0 68 E2
 6C 68 56 09 00 2D 4E 91 98 26 5E BD 5B 09 00 4B
 6D CF 91 F6 65 F4 95 09 00 50 00 72 00 65 00 61
 00 6D 00 70 00 0D 00 0A 00 33 00 30 00 20 00 4D
 00 48 00 7A 00 20 00 2D 00 20 00 32 00 20 00 47
 00 48 00 7A 00 09 00 36 00 30 00 20 00 6B 00 48
 00 7A 00 09 00 50 00 4B 00 2B 00 09 00 31 00 32
 00 30 00 20 00 6B 00 48 00 7A 00 09 00 2E 00 30
 00 31 00 20 00 73 00 09 00 32 00 30 00 20 00 64
 00 42 00 0D 00 0A 00 00 00 00 00 00 00 00 00 31
 00 00 00 00 00 05 00 00 00 42 80 00 00 01 00 00
 00 03 00 00 00 09 00 00 00 46 00 72 00 65 00 71
 00 75 00 65 00 6E 00 63 00 79 00 03 00 00 00 4D
 00 48 00 7A 00 00 00 00 00 80 84 2E 41 00 00 00
 00 00 00 00 00 06 00 00 00 0B 00 00 00 00 00 00
 00 00 00 00 00 00 00 E2 04 00 00 FF FF FF FF 09
 00 00 00 50 00 4B 00 2B 00 5F 00 43 00 4C 00 52
 00 57 00 52 00 06 00 00 00 64 00 42 00 BC 03 56
 00 2F 00 6D 00 00 00 00 00 00 00 F0 3F 00 00 00
 00 01 00 00 00 01 00 00 00 0D 00 00 00 00 00 00
 00 06 00 00 00 00 00 A6 04 00 00 FF FF FF FF 02
 00 00 00 D8 9A A6 5E 02 00 00 00 63 00 6D 00 7B
 14 AE 47 E1 7A 84 3F 00 00 00 00 02 00 00 00 01
 00 00 00 1D 00 00 00 00 00 00 00 00 00 00 00 00
 00 30 02 00 00 FF FF FF FF 03 00 00 00 50 00 6F
 00 6C 00 00 00 00 00 00 00 00 00 00 00 F0 3F 01
 00 00 00 00 00 00 00 00 00 00 00 05 00 00 00 00
 00 00 00 00 00 00 00 00 00 0D 02 00 00 FF FF FF
 FF 05 00 00 00 43 00 6F 00 72 00 72 00 2E 00 04
 00 00 00 64 00 42 00 2F 00 6D 00 00 00 00 00 00
 00 F0 3F 00 00 00 00 03 00 00 00 01 00 00 00 26
 00 00 00 00 00 00 00 00 00 00 00 00 00 A8 02 00
 00 FF FF FF FF 02 00 00 00 07 59 E8 6C 00 00 00
 00 00 00 00 00 00 00 F0 3F 01 00 00 00 01 00 00
 00 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00
 00 00 00 94 02 00 00 FF FF FF FF 03 00 00 00 42
类似文件的解析结果

[FileInfo]
Author=EMC32
Version=8.3
MeasClass=4 EMI 传导
Start=9.000000000000E+3
Stop=29.99900000000E+6
Description=子区间    步长    检波器    中频带宽    测量时间    Preamp9 kHz - 149.999 kHz    100 Hz    PK+ ; AVG    200 Hz    .1 s    0 dB150 kHz - 29.999 MHz    4.5 kHz    PK+ ; AVG    9 kHz    .01 s    0 dB

[TableSettings]
TableType= 49 结果表格
IndicateDetector=0
Columns=5
Rows= 8046
SaveResolution=0
BandsOption=0
ResultType= 2

[TableHeader]
Name=    Frequency    PK+_CLRWR    AVG_CLRWR    Corr.    备注
Unit=    MHz    dBμA    dBμA    dB    
ColTyp=    11 Frequency    13 Level    13 Level    38 RX Corr.    7 备注
Detector=     0     6     7     0     0
Intpol=     0     0     0     0     0
Format=     6     1     1     1     0
ColWidth=     1268     1160     1208     536     588
ColVisible=    1    1    1    1    1
ColReport=    1    1    1    1    1

[TableValues]
9.000000000000E-3    60.598014363E+0    42.139336272E+0    31.324035635E+0    
9.100000000000E-3    59.640017998E+0    42.631386022E+0    31.232377686E+0    
9.200000000000E-3    60.642411759E+0    41.552837484E+0    31.141721483E+0    
9.300000000000E-3    52.829656143E+0    41.043933086E+0    31.052045366E+0    
9.400000000000E-3    57.502024654E+0    42.943714845E+0    30.963328371E+0    
9.500000000000E-3    60.892048435E+0    42.005355639E+0    30.875550197E+0    
9.600000000000E-3    59.872523375E+0    39.834146712E+0    30.788691184E+0    
9.700000000000E-3    53.328579692E+0    40.329391395E+0    30.702732280E+0    

通过分析可知,二进制文件的存储是按上面内容逐个写入的,只是结果里面只包含了关键的信息(即‘=’右边的部分)

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

1条回答

  • qq_35043039 牛翔没人爱 1月前

    已经解决了,创建一个类,用参数属性进行对应即可

    点赞 评论 复制链接分享