日期:2014-05-18  浏览次数:20861 次

C#读二进制文件的问题,急,求助!
我有一个二进制文件.里面存储的数据如下:(只贴出前几例)
struct   datarec   /*   长度=100   byte   */       项序
{   unsigned       char   baoformat;                     1   (瞬时报有)
    unsigned       char   station;                         2   (瞬时报有)
    unsigned       char   stationname[6];           3   (瞬时报有)
    unsigned       int     rec_time;                       4   (瞬时报有)
    unsigned       long   rec_date;                       5   (瞬时报有)
    unsigned       int     wd2dd;                             6   (瞬时报有)
    unsigned       int     wd2df;                             7(瞬时报有)
    unsigned       int     wd10dd;                           8(瞬时报有)
    unsigned       int     wd10df;                           9(瞬时报有)
    unsigned       int     wd10maxdd;                   10  
    unsigned       int     wd10maxdf;                   11
    unsigned       int     wd3smaxdd;                   12
}
数据说明:
第   1项   资料类型(baoformat)   长=1   byte;   其中:字符“   0”为正点报告,“   1”为瞬时报告(其中瞬时报告只有正点观测数据   ,见“正点资料格式”注明有的项目)。其他码用户不能使用。

第   2项   自动站编号(station);   长=1   byte;数值为:   0-99等;  
第   3项   自动站站号(stationname[6]);长=6   byte;     例:   59287,G1001等;
第   4项   资料时间(rec_time)   长=2   byte;   用时分表示;如:2230为   22时30分;
第   5项   资料日期(rec_date)   长=4   byte;   用年月日表示,如:980103   为98年1月3日;
第   6项   二分钟风向(wd2dd);长=2   byte;0-360   以度方位表示;
第   7项   二分钟风速(wd2df);长=2   byte,单位为m/s   ,扩大10倍,15.6m/s=156
第   8项   十分钟风向(wd10dd);数值说明同第   6项;
第   9项   十分钟风速(wd10df);数值说明同第   7项;
第10项   时十分钟最大风速时的风向(wd10maxdd);数值说明同第   6项;
第11项   时十分钟最大风速(wd10maxdf);数值说明同第   7项;
第12项   时瞬时极大风速时的风向(wd3smaxdd);数值说明同第   6项;


现在我从二进制文件里面读出来的数据如下:
48   0   71   49   48   48   52   0   0  
很显然,第一数和数据说明就对应不上,我的代码如下:
代码放在一个button事件里面.
  FileStream   fs   =   new   FileStream(FileUpload1.PostedFile.FileName,   FileMode.Open,   FileAccess.Read);
                FileInfo   info   =   new   FileInfo(FileUpload1.PostedFile.FileName);
                BinaryReader   reader   =   new   BinaryReader(fs);