现在对机器生产的*.MPR数据报表进行自动统计,这种文件可用写字板打开,本想导入到Memo或RichEdit中搜索关键区域,按行读取来统计数据,但导入后发现里面是一片空白,观察里面的数据有很多"#0"。
数据报表文件在http://mail.qq.com/cgi-bin/ftnExs_download?k=73353738cee8cecb1a9100394034031b5005000a070d01071c51060c5619055600571a5a070307195007060c030407060851050e663a31040105070857030303081b7a683434&t=exs_ftn_download&code=1578f414&s=email,想统计的内是:[TakeUpCount]、[TakeUpMiss]、[ChipRcgMiss]区域的数据,现在很迷茫请高手指点?

解决方案 »

  1.   

    这应该是一个带结构的存储,比如record,填充数据后,保存成这个文件,所以你要想提取内容,最好知道他的数据结构
      

  2.   

    每个区域都是有若干个字段组成的,每个字段都对应着一组数据,去找文件结构吧,那样就方便了ChipRcgMiss字段好像是
    Address  SubAdd FdrType Name NPA NPB NPC NPD NPE NPF NPG NPH NPI NPJ NPK NPL NS11 NS12 NS13 NS14 NS15 NS16 NS17 NS18 NS19 NS21 NS22 NS23 NS24 NS25 NS26 NS27 NS28 NS29 NS31 NS32 NS33 NS34 NS35 NS36 NS37 NS38 NS39 NS41 NS42 NS43 NS44 NS45 NS46 NS47 NS48 NS49 NS51 NS52 NS53 NS54 NS55 NS56 NS61 NS62 NS63 NS64 NS65 NS66 SNA SNB STA STB
    组成
      

  3.   

    例如在[TakeUpCount]的前2行数据:
    10007 1 2481 G20401050105 845 2 0 0 0 0 1680 841 0 0 0 0 845 2 0 0 0 0 0 0 0 1680 841 0 0  
    10008 1 2481 G20000103013 0 841 841 0 0 0 0 0 841 841 0 0 0 841 841 0 0 0 0 0 0 0 0 841 841 0 0 0 
    我需要前2个数据和红色12个数据(行列)之和:
    行之和:
    10007 1 :845+2+1680+841=3368
    10008 1 :841+841+841+841=3364
    列之和
    NO1:845+0=845
    ...
    NO7:1680+o=1680
    ...
    例如在[ChipRcgMiss]的与前面对应的数据:
    10007 1 2481 G20401050105 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    我同样需要前2个数据和红色12个数据之和,以及这12数据和位置的关系:
    10007 1 :1+1=2,而且N01=1,NO7=1
    最后统计10007 1:  2/3368×100%=0.05%
    N01: 1/845*100%=0.1% 
    NO7: 1/1680*100%=0.05%
      

  4.   

    所以你要研究他的数据结构,那样才能根据具体流的位置,字段类型大size取到你想要的东西,就跟在数据库里知道表名,字段名取数据一样
    如果无规律的取凑,那样程序根本无法扩展