- 爱易网页
 
                        - 
                            C#教程
 
                        - C#读二进制文件的有关问题, 
 
                         
                    
                    
                    日期:2014-05-18  浏览次数:21055 次 
                    
                        
                         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);