问题描述
做了一个东西.想从16进制的dat参数表中读取数据然后转成10进制状态按照各种字节数来放进txtBOX中.但参数版本.生效时间.车站标识码都能正常读取.反倒是下一个读取2个字节的站点位置却度不出来了...代码都是一样复制的啊...那位大大能救救小弟啊...谢谢啊!!!==========================================================usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem.IO;namespacehhjt{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}privatevoidForm1_Load(objectsender,EventArgse){stringfile="1040.dat";if(!File.Exists(file)){Console.WriteLine("文件不存在");}else{FileStreamfilestream=newFileStream(file,FileMode.Open,FileAccess.Read);BinaryReaderobjBinaryReader=newBinaryReader(filestream);stringstr1="";stringstr2="";stringstr3="";stringstr4="";//stringstr5="";//stringstr6="";//stringstr7="";//stringstr8="";//stringstr9="";//stringstr10="";//stringstr11="";//stringstr12="";//stringstr13="";//stringstr14="";//stringstr15="";//stringstr16="";//stringstr17="";try{{//参数版本byte[]bt1=objBinaryReader.ReadBytes(4);for(inti=0;i<bt1.Length;i++){str1+=bt1[i].ToString("x");}this.txtBanben.Text=Convert.ToInt32(str1).ToString();//生效时间byte[]bt2=objBinaryReader.ReadBytes(4);for(inti=0;i<bt2.Length;i++){str2+=bt2[i].ToString("x");}intseconds=int.Parse(str2,System.Globalization.NumberStyles.HexNumber);DateTimetimeBase=newDateTime(1970,01,01);DateTimenTime=timeBase.AddSeconds(seconds);this.txtTime.Text=nTime.ToString();//车站标识码byte[]bt3=objBinaryReader.ReadBytes(4);for(inti=0;i<bt1.Length;i++){str3+=bt3[i].ToString("x");}this.txtChezhanbiaoshima.Text=Convert.ToInt32(str3).ToString();//站点位置byte[]bt4=objBinaryReader.ReadBytes(4);for(inti=0;i<bt4.Length;i++){str4+=bt4[i].ToString("x");}this.txtWeizhi.Text=Convert.ToInt32(str4).ToString();}}catch(EndOfStreamException){Console.WriteLine("以到文件末尾");}}}}}=====================================我传的附件中参数表已经放在bin目录下了...直接就能运行的...但就是最后一个不能读取...大虾们帮帮我吧...
解决方案
解决方案二:
為甚麼是byte[]bt4=objBinaryReader.ReadBytes(4);不是byte[]bt4=objBinaryReader.ReadBytes(2);你自己說的兩個字節阿,別的都是4個字節阿
解决方案三:
这一段应该是我试验4个字节是否可行的时候帖子...应该是1楼大大说的byte[]bt4=objBinaryReader.ReadBytes(2);现在无法修改了...但就是上面那段代码...另外谢谢1楼大大...
解决方案四:
这一段应该是我试验4个字节是否可行的时候帖子...应该是1楼大大说的byte[]bt4=objBinaryReader.ReadBytes(2);现在无法修改了...1楼大大说的对.应该是2而不是4...byte[]bt4=objBinaryReader.ReadBytes(2);这段代码...