小弟初学DELPHI!各位老大帮忙!  
有一固定格式文件!我想读取他的资料!  
每条记录32字节  
 
BBF9B1BED7CAC1CF31413242000031323334353600000100F0008601FE015802  
 
分析如下:  
BB  F9  B1  BE  D7  CA  C1  CF  //字符串  
31  41  32  42  //字符串  
31  32//字符串  
31  32  33  34  35  36  //字符串  
00  00  01  00//数值  
F0  00  86  01//数值  
FE  01  58  02//数值  
 
我应该怎样来读取它?  
 
如果我这样定义错在那里?  
   packfile=packed  record    
       mc:string[8];  
       dh:string[4];  
       tmp1:string[2];  
       dm:string[6];  
       tmp2:longint;  
       tmp3:longint;  
       tmp4:longint;  
   end;  
 
 
郁闷ing……

解决方案 »

  1.   

    type
      TS2 = string[2];
    begin
      ShowMessage(IntToStr(SizeOf(TS2))); //显示为3,说明stirng[2]占用3个字节,第一个字节是长度~~
    end;
    type
       packfile=packed  record
           mc:array[0..7] of Char;
           dh:array[0..3] of Char;
           tmp1:array[0..1] of Char;
           dm:array[0..5] of Char;
           tmp2:longint;
           tmp3:longint;
           tmp4:longint;
       end;
    begin
      ShowMessage(IntToStr(SizeOf(packfile))); //这不就是32个字节了!~~
    end;
      

  2.   

    type
       packfile=packed  record
           mc:array[0..7] of Char;
           dh:array[0..3] of Char;
           tmp1:array[0..1] of Char;
           dm:array[0..5] of Char;
           tmp2:longint;
           tmp3:longint;
           tmp4:longint;
       end;
    begin
      ShowMessage(IntToStr(SizeOf(packfile)));
    end;