Balaraj Nayak Ответов: 1

Скопируйте байты из массива байтов , начиная с позиции совпадения строк.


Привет всем здесь я читаю буфер, и я буду искать строку несколько раз, увеличивая последние 3 цифры , я хочу скопировать байты на каждую строку поиска из буфера, от начальной позиции искомой строки до примерно 554 байт, и скопировать 554 байта в другой буфер, рассматривая его как пакет.

,

Что я уже пробовал:

FileStream fssource1 = new FileStream(file1, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);

           byte[] source1 = new byte[fssource1.Length];
           numBytesToRead = (int)fssource1.Length;
           numBytesRead = 0;
           while (numBytesToRead > 0)
           {

               int n = fssource1.Read(source1, numBytesRead, numBytesToRead);

               // Break when the end of the file is reached.
               if (n == 0)
                   break;

               numBytesRead += n;
               numBytesToRead -= n;
           }
           numBytesToRead = source1.Length;
           fun.extract(ref source1);


и соответствующая строка выглядит следующим образом, и я не знаю дальнейших действий,

>public void extract(ref byte[] buffer)
       {



           for (int i = 108; i <= nNoofPackets; i++)
           {
               string search = "MINDFLOWfP"+i.ToString().PadLeft(3,Convert.ToChar("0"));

               var index = Array.IndexOf(buffer, search);
               if (index!=-1)
{

1 Ответов

Рейтинг:
4

OriginalGriff

Если у вас есть индекс, то просто скопируйте нужный раздел массива: Массив.Метод Копирования (Array, Int32, Array, Int32, Int32) (System)[^] существует, чтобы сделать именно это.