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