Подсчет появления байтов в двоичном файле - PullRequest
0 голосов
/ 06 января 2019

Я хочу, чтобы моя программа считала шестнадцатеричное значение двоичного файла и посчитала вхождение '45' и теперь застряла при подсчете байтового шаблона.

public static byte[] GetOccurrence(string dump)
{
    using (BinaryReader b = new BinaryReader(new FileStream(dump, FileMode.Open)))
    {
        bufferB = new byte[32];
        b.BaseStream.Seek(0x000000, SeekOrigin.Begin);
        b.Read(bufferB, 0, 32);
        return bufferB;
    }
}  

bufferA = GetOccurrence(textOpen.Text);   // textOpen.Text is the opened file

// bufferA now stores 53 4F 4E 59 20 43 4F 4D 50 55 54 45 52 20 45 4E 54 45 52 54 41 49 4E 4D 45 4E 54 20 49 4E 43 2E

// trying to count occurrence of '45' and display the total occurrence in textbox

1 Ответ

0 голосов
/ 06 января 2019

Вы можете циклически проходить через каждый элемент в массиве и считать каждый раз, когда найдено значение 45. Или вы можете использовать LINQ Count и достичь того же результата.

Здесь я сделал обе реализации:

        var bufferA = new byte[] { 53, 0x4F, 0x4E, 59, 20, 43, 0x4F, 0x4D, 50, 55, 54, 45, 52, 20, 45, 0x4E, 54, 45, 52, 54, 41, 49, 0x4E, 0x4D, 45, 0x4E, 54, 20, 49, 0x4E, 43, 0x2E };
        //Using LINQ
        var numOfRepetition = bufferA.Count(x=> x== 45);

        //Using a foreach loop
        var count = 0;
        foreach(byte number in bufferA)
        {
            if(number == 45)
            {
                count++;
            }
        }

В обеих реализациях число 45 повторяется 4 раза.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...