文件结构体中有 :
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();
}
分享到:
相关推荐
在本例中,它涉及将结构体实例转换为二进制流,以便保存到文件。这样做的好处在于,二进制格式通常占用更少的存储空间,并且可以更快地读取和写入。 二进制文件与文本文件不同,它不使用人类可读的字符编码,而是...
总结,C#中存储和读取结构体到二进制文件的关键在于使用`BinaryFormatter`进行序列化和反序列化。理解这个过程对于处理数据持久化、数据传输等任务至关重要。当然,选择合适的序列化方法还需根据具体需求,考虑性能...
// 读取二进制时间 long binaryTime = br.ReadInt64(); DateTime readTime = DateTime.FromBinary(binaryTime); Console.WriteLine($"读取的时间:{readTime}"); } ``` 这里使用了`ReadInt64`来读取之前写入...
在读取二进制文件后,数据通常会被存储到内存中的数组或结构体中。一旦数据加载完毕,我们可以应用各种排序算法对其进行排序,如冒泡排序、选择排序、插入排序、快速排序、归并排序等。这些算法的选择取决于数据规模...
在给定的" C# 解析多种格式的二进制文件程序.cs "源代码文件中,可能包含上述技术的实现,用于解析ASCII和16进制字符串等不同格式的数据。通过阅读和理解这个程序,开发者可以学习如何灵活地处理各种二进制文件,这...
《Excel转二进制工具详解:C#在游戏开发中的应用》 在游戏开发领域,数据管理是一项至关重要的任务,而Excel作为一种强大的表格处理软件,常被用来存储和组织策划人员的各种游戏数据。然而,游戏运行时往往需要将...
C# 二进制文件读写通用方法 在日常的工作中,我们经常需要进行一些二进制文件或协议...本文介绍了一种在 C# 中实现快速读写二进制文件通用的方法,使用 C# 语言定义数据结构和读取数据,可以实现快速读写二进制文件。
例如,当你需要从文件中读取或向网络发送图像数据时,可能会用到二进制数组。 结构体(struct)是C#中的复合数据类型,它可以包含多个不同的成员,如整数、浮点数、字符等。结构体的大小通常是固定的,且它们在内存...
在本文中,我们使用 C++ 语言实现了 STL 文件的二进制格式到 ASCII 格式的转换。该代码可以应用于各种 CAD、CAM 和 3D 打印等领域,帮助用户快速地将 STL 文件转换为 ASCII 格式,以便更好地进行后续处理和分析。 ...
以及`StreamReader`,虽然主要用于读取文本文件,但在某些情况下也可以用来读取二进制文件。 下面是一个简单的示例,演示了如何读取.bin文件并将内容显示在TextBox中: ```csharp using System; using System.IO; ...
在C#中,读取二进制文件是一个常见的任务,特别是在处理非文本格式的数据时,如图像、音频、自定义数据结构等。本篇文章将详细分析C#中读取二进制文件的方法及其原理。 首先,C#提供了System.IO命名空间下的...
由于STL文件通常是二进制格式,所以`BinaryReader`更为合适,因为它能高效地读取二进制数据。以下是基本的步骤: 1. 打开文件: 使用`File.OpenRead`方法创建一个`FileStream`对象,传入STL文件的路径。 2. 创建`...
内容索引:C#源码,文件操作,FSO,二进制 C# 读写二进制文件的一个示例,演示如何以二进制方式写入文件,以二进制方式读出文件,下方框主要用来显示读取出来的二进制文件。C#新手朋友朋友们可拿去研究文件操作,应该...
图片通常以二进制格式存储,如JPEG或PNG,可以直接作为字节数组(byte[])进行传输。 内存映射文件是另一种实现内存共享的方法,它允许多个进程将同一块磁盘上的文件映射到自己的地址空间。在C#中,可以使用`System...
在处理二进制数据时,例如从网络流或数据库读取的数据,有时我们需要将这些数据转换为更易于操作的类型,如整数(int)或自定义结构体数组。本教程将深入探讨如何使用C#中的不安全代码来高效地完成这一任务。 不...
然后,可以使用`BinaryReader`类来读取二进制数据。例如: ```csharp using (FileStream fs = new FileStream("seg.y", FileMode.Open)) using (BinaryReader br = new BinaryReader(fs)) { // 在这里读取SegY头...
标题中的“TcpEthernet C#读取OMRON PLC实例源码”指的是使用C#编程语言,通过TCP/IP协议来实现对OMRON(欧姆龙)可编程逻辑控制器(PLC)的数据读取操作。这个实例源码是针对工业自动化领域的一个常见应用场景,...
MAT文件是MATLAB用于存储变量、函数和其他数据的二进制格式。在C#中,我们可以利用csmatio库来处理这些文件,该库提供了一个方便的API,允许我们轻松地读取和写入MAT文件。 首先,让我们了解一下csmatio库。csmatio...
C#中解析PE文件,可以使用System.IO.BinaryReader类读取文件的二进制数据,配合结构体来表示PE文件的各个部分。例如,定义一个包含DOS头、NT头、节表结构的类或结构体,并使用BinaryReader.Read方法逐个读取字段。...