C# 二进制字节流查找函数IndexOf
/// <summary>
/// 报告指定的 System.Byte[] 在此实例中的第一个匹配项的索引。
/// </summary>
/// <param name="srcBytes">被执行查找的 System.Byte[]。</param>
/// <param name="searchBytes">要查找的 System.Byte[]。</param>
/// <returns>如果找到该字节数组,则为 searchBytes 的索引位置;如果未找到该字节数组,则为 -1。如果 searchBytes 为 null 或者长度为0,则返回值为 -1。</returns>
internal int IndexOf(byte[] srcBytes, byte[] searchBytes)
{
if (srcBytes == null) { return -1; }
if (searchBytes == null) { return -1; }
if (srcBytes.Length == 0) { return -1; }
if (searchBytes.Length == 0) { return -1; }
if (srcBytes.Length < searchBytes.Length) { return -1; }
for (int i = 0; i < srcBytes.Length - searchBytes.Length; i++)
{
if (srcBytes[i] == searchBytes[0])
{
if (searchBytes.Length == 1) { return i; }
bool flag = true;
for (int j = 1; j < searchBytes.Length; j++)
{
if (srcBytes[i + j] != searchBytes[j])
{
flag = false;
break;
}
}
if (flag) { return i; }
}
}
return -1;
}
使用示例:
receiveData = new byte[1024];
int receiveLen = socket.ReceiveFrom(receiveData, ref ep);
receiveData = this.SubByte(receiveData, 0, receiveLen);
if (this.IndexOf(receiveData, System.Text.Encoding.Unicode.GetBytes("Exec_Exit")) != -1)
{
this.runing = false;
break;
}
分享到:
相关推荐
二进制图片读写的基本思路是将图片转换为字节流,然后进行保存或加载。 ### 读取二进制图片 1. **使用`System.Drawing.Image`类**:首先,你可以使用`System.Drawing.Image.FromFile()`方法读取图片文件,将其转换...
### 二、C#进制转换函数详解 #### 1. 从十进制转换为其他进制 C#中,我们可以通过调用`Convert.ToString`方法将一个十进制数转换为二进制、八进制或十六进制字符串表示形式。示例如下: ```csharp int decimal...
在C#编程语言中,这种操作是通过读取和写入二进制流来实现的。本文将深入探讨如何在C#中进行二进制图片的存储和读取,并结合SQL Server数据库进行操作。 首先,让我们了解二进制流的基本概念。二进制流是计算机处理...
### C#读取二进制流并生成图像的知识点 #### 一、概述 在C#编程中,从数据库中获取二进制流,并将其转换为图像、Word文档或PDF文件是一项常见的需求。这种需求常见于需要将存储在数据库中的各种格式文件(如图像、...
在C#中,可以使用`Convert.ToInt32()`函数将二进制字符串转换为十进制整数。该函数接受一个字符串参数,表示要转换的二进制数,并指定基数(在这种情况下是2)。 ```csharp string binaryString = "10101"; int ...
标题“C#二进制流方式读取dbf”指出了我们将在C#中使用二进制流(BinaryReader和BinaryWriter)来处理DBF文件。这种方法的优点是可以直接访问文件的字节,无需通过数据库驱动或ADO.NET这样的高级接口,从而可能提高...
二进制序列化使用BinaryFormatter类,它可以将对象转换为字节流,方便存储或在网络上传输。以下是一个简单的例子: ```csharp public class MyClass { public int Value { get; set; } } MyClass obj = new ...
本篇文章将深入探讨如何在C#中以二进制流读取Word文档。 首先,理解二进制流的概念至关重要。二进制流是计算机存储和传输数据的基本方式,它允许程序以原始字节序列的形式处理文件,而不是以文本或其他高级格式。在...
标签“C# 浮点数与二进制之间的转换”进一步强调了这个工具的主要功能,它可能包括一个或多个函数,如`FloatToBinary`和`BinaryToFloat`,分别用于执行上述转换。 压缩包内的文件“十六进制转化为浮点数”可能是一...
在C#编程中,二进制流是一种处理数据的基本方式,尤其在进行低级I/O操作、文件存储、网络通信和序列化时至关重要。本文将深入探讨C#中二进制流的操作,以及如何实现异步调用。我们将基于提供的"二进制流操作"源码来...
根据给定的信息,本文将详细解释C#中如何读取和写入二进制文件,以及涉及的相关知识点。 ### C#读取与写入二进制文件 在C#编程中,经常需要处理二进制文件,比如图像、音频文件等非文本数据。为了高效地读写这些...
由于二进制数在C#中无法直接表示,所以所有二进制数都用一个字符串来表示 例如: 二进制: 1010 表示为 字符串:”1010″ int d = 10; //十进制转二进制字符串 Console.WriteLine(Convert.ToString(d,2)); //...
在C#编程中,文件和二进制流的转换是一个常见的操作,特别是在处理图像、音频、视频等非文本数据时。二进制流是计算机内存中以0和1表示的数据流,它可以精确地保存和传输文件的所有原始信息。本文将深入探讨如何在C#...
本文主要介绍了C#实现把图片转换成二进制以及把二进制转换成图片的方法,并结合具体实例形式分析了基于C#的图片与二进制相互转换以及图片保存到数据库的相关操作技巧。 一、图片转换成二进制 在C#中,可以使用...
本文将深入探讨如何以二进制字节和文本形式读取文件,并提供相关的源代码示例。这两种方式在处理不同类型的数据时各有优势,理解它们的工作原理和适用场景对于任何C#开发者来说都是至关重要的。 首先,我们来讨论二...
在C#编程语言中,处理浮点数与16进制表示之间转换是常见的任务,尤其是在数据存储、网络传输或二进制解析等场景。本文将深入探讨如何使用C#来实现单精度浮点数(Single)与16进制字符串的相互转换。 首先,我们需要...
总结,C#处理二进制数据涉及到二进制流、序列化与反序列化、数值类型的二进制表示、以及网络和文件操作等多个方面。理解并掌握这些概念,能够让你更有效地处理各种复杂的二进制数据任务。在实际项目中,根据需求选择...
在C#编程中,二进制读写操作是处理数据流的一种重要技术,尤其是在需要存储或传输原始字节数据时。二进制读写器(BinaryReader和BinaryWriter)是.NET框架提供的一对类,用于从流中读取和向流中写入基本类型的数据。...
本文将深入探讨如何在C#中进行二进制(Binary)与十六进制(Hexadecimal)的无限位转换,以及相关的知识点。 首先,我们要了解二进制和十六进制的基本概念。二进制是一种仅使用0和1两个数字的计数系统,而十六进制...