用
try{}把
fs.Seek(54 + 2432 * TotalNum, SeekOrigin.Begin);
fs.Read(Elevations, 0, 1);
TotalNum++;
代码包含起来,看看有没有发生异常吧
try{}把
fs.Seek(54 + 2432 * TotalNum, SeekOrigin.Begin);
fs.Read(Elevations, 0, 1);
TotalNum++;
代码包含起来,看看有没有发生异常吧
解决方案 »
- C# winform中如何用ReportViewer打印出库单这种父子关系的表单?
- Container.DataItemIndex+1的问题
- 如何让Dategridview 的列标题每行只显示5个字
- 进程1 启动了进程2,如何实现等进程2执行完再执行进程1?
- 高分.急问:怎样实现一个图片的拖拽.
- 关于TcpListener的问题!
- 把delphi 代码改成c#
- C#中如何用WMI获取所有运行的应用程序状态
- 100分问题,引用dll文件时出错!大家帮忙!!!
- 紧急,关于TabControl控件
- fastreport的子报表如何能够补齐空格,在线急等!
- 请问怎么才能用反射得到MENUITEM中的事件列表??
只有在到达流的末尾后,Read 方法才返回零。否则,Read 在返回前始终至少从流读取一个字节。如果在调用 Read 之后流中无可用数据,则该方法将一直阻止,直到至少可返回一个字节的数据。即使尚未到达流的末尾,实现仍可以随意返回少于所请求的字节。
注意:是Read()方法的返回值,所以改为:
FileStream fs = new FileStream(FileName, FileMode.Open, FileAccess.ReadWrite);
do
{
fs.Seek(54 + 2432 * TotalNum, SeekOrigin.Begin);
//fs.Read(Elevations, 0, 1);
TotalNum++;
}
while(fs.Read(Elevations, 0, 1)!=0)
应该就对了
多谢,这样确实可以了,但还有一点:
为什么 fs.Read(Elevations, 0, 1)的返回值等于0的时候,Elevations居然还有值且等于1呢?多谢回复
//到达文件尾了,返回0,所以不会再读数据,也就不会为Elevations赋值了,否则赋什么值好呢?空?还是-1?还是...
本来应该是这样的,但是Elevations确实有值,而且延续了第4033packet的值,这该怎么理解?请详述而且如果直接把该文件读入到一个data[2432*5000]中去,比如:
fs.Seek(0, SeekOrigin.Begin);
fs.Read(Data, 0, 2432 * 5000);
读出第4034个值是0
{
fs.Seek(54 + 2432 * TotalNum, SeekOrigin.Begin);
//fs.Read(Elevations, 0, 1);
TotalNum++;
}
while(fs.Read(Elevations, 0, 1)!=0)
改为:
do
{
fs.Seek(54 + 2432 * TotalNum, SeekOrigin.Begin);
Elevations=-1;
//fs.Read(Elevations, 0, 1);//对Elevations处理的代码
TotalNum++;
}
while(fs.Read(Elevations, 0, 1)!=0)