文件结构体中有 :
unsigned short int Size;
char ID;
char Type;
short int IDS;
unsigned short int Date;
采用二进制文件方式一个字节一个字节读,看看这样成不成
/// <summary>
/// 读取二进制文件
/// </summary>
/// <param name="fileName">文件名</param>
public void ReadMyBinaryFile(string fileName)
{
FileStream fileStream = new FileStream(fileName, FileMode.Open, FileAccess.Read);
/*
* public unsafe struct DATAPACKET
{
public fixed ushort head[6];
public ushort Size;
public byte ID;
public byte Type;
public short IDS;
public ushort Date;
}
*/
int iFileLength = fileStream.Length;//文件长度
int iStructLength = 20;//结构体的字节长度
int iTimes = iFileLength / iStructLength;//共有多少个字节
DATAPACKET tmp;
byte[] byTmp = new byte[2];
for (int i = 0; i < iTimes; i++)
{
//读头部六个短整型字节
for (int j = 0; j < 6; j++)
{
if (fileStream.Read(byTmp, 0, 2) != 2)
{
Console.WriteLine("file read error!");
return;
}
tmp.head[j] = BitConverter.ToUInt16(byTmp, 0);
}
//读大小
if (fileStream.Read(byTmp, 0, 2) != 2)
{
Console.WriteLine("file read error!");
return;
}
tmp.Size= BitConverter.ToUInt16(byTmp, 0);
//读id
tmp.ID = fileStream.ReadByte();
//读类型
tmp.Type = fileStream.ReadByte();
//读ids
if (fileStream.Read(byTmp, 0, 2) != 2)
{
Console.WriteLine("file read error!");
return;
}
tmp.IDS = BitConverter.ToInt16(byTmp, 0);
//读日期
if (fileStream.Read(byTmp, 0, 2) != 2)
{
Console.WriteLine("file read error!");
return;
}
tmp.Date = BitConverter.ToUInt16(byTmp, 0);
/*
.........对读出变量进行处理
*/
}
/*
.....后续处理
*/
fileStream.Close();
}
分享到:
相关推荐
数据用二进制方式保存无疑是能减小数据文件体积!此类就是鉴此思想编写 类包括数据写入 读写(文件头(结构体)部分 记录数据基本参数和文件的数据块数量 正文部分为存数据(结构体))高效实现块写 块读 !
把结构体存储成2进制文件及从2进制文件中读取信息到结构体示例
将结构体数据写入二进制文件,从二进制文件中读取结构体数据
二进制文件的读写,当前时间写入到dat文件中,可以读入读出.C#源代码 用VisualStudio2008创建 http://download.csdn.net/user/gouyue下载
本篇文章是对php读取二进制流(C语言结构体struct数据文件)进行了详细的分析介绍,需要的朋友参考下
资源代码演示的是c#代码调用c++ DLL 的方式。该演示为原创,绝非搬砖。解决了c# 调用 C++ Dll获取相关信息之如何传递结构体数组引用以及如何处理获取到的结构体数组数据的问题。
C#遍历结构体
C#结构体指针的定义及使用详解
二进制解码C++ /* Function to decode a population to find out the binary variable values based on its bit pattern */ void decode_pop (population *pop) { int i; if (nbin!=0) { for (i=0; i; i++) { ...
内容索引:C#源码,文件操作,FSO,二进制 C# 读写二进制文件的一个示例,演示如何以二进制方式写入文件,以二进制方式读出文件,下方框主要用来显示读取出来的二进制文件。C#新手朋友朋友们可拿去研究文件操作,应该...
处理起来比较麻烦不说,如果是和c++等写的程序通信的话,很多的都是传送结构体,在VC6.0中可以很方便的把一个char[]数组转换为一个结构体,而在C#却不能直接把byte数组转换为结构体,要在C#中发送结构体,可以按此...
C#实现结构体与数组间的转换,包括:同时支持大小端;支持自定义数据类型;支持数组类型结构体成员,带单元测试
C#向C++封送结构体数组[归类].pdf
c++调用C# COM 参数是结构体数组
在项目开发时,要调用C++封装的DLL,普通的类型C#上一般都对应,只要用DllImport传入从DLL中引入函数就可以了。但是当传递的是结构体、结构体数组或者结构体指针的时候,就会发现C#上没有类型可以对应。这时怎么办,...
使用 C 结构体和 FILE 指针读取二进制图像文件
就是很简单很简单的一个结构体设计,C#的第一次作业。。
二进制文件存储方式比较方便,文本小,保密效果好 定义一个数据结构并实现相关操作 使用QDataStream进行读写操做 数据结构 #include struct AccountInfo { // 数据 QString Account; QString LogPasswd; // 初始...
在MATLAB环境下读取dat文件,读取之后文件以结构体形式存在,仅适合数字类型