C# Поиск bytes и замена 4 байт по Pos

159
02 января 2019, 13:10

Использую данный код для замены 4 байт в файле (замена по позиции)

private void ChangePos()
        {
            try
            {
                string path = Directory.GetCurrentDirectory() + @"\Somefile.bin";
                string path2 = Directory.GetCurrentDirectory() + @"\Somefile2.bin";
                ReplaceDataCamera(path,
                                new int[] { 27421, 27425, 27429 },
                                new float[] { 55f, 56.54f, 86.43f });
                ReplaceDataCamera(path2,
                                new int[] { 27421, 27425, 27429 },
                                new float[] { 86.54f, 86.54f, 654.124f });
            }
            catch (Exception ex)
            {
                System.Windows.MessageBox.Show(ex.ToString());
            }
        }
        private void ReplaceDataCamera(string path, int[] positions, float[] data)
        {
            using (Stream stream = File.Open(path, FileMode.Open))
            {
                for (int i = 0; i < positions.Length; i++)
                {
                    var tmpData = BitConverter.GetBytes((float)Math.Round((data[i]), 7));
                    stream.Position = positions[i];
                    stream.Write(tmpData, 0, tmpData.Length);
                }
            }
        }

У меня есть файл большого объёма, в нем надо менять 4 байта в определенных местах, файл периодически меняется, по этому меняется позиция но не меняется хекс.
Как мне приспособить данный код так чтобы я мог найти в файле bytearray допустим

F 00 00 00 00 00 00 00 76 00 00 00 00 00 00 00 42 00 00 00 00 00 00 00 46 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7E 00 00 00 00 00 00 00 48 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 CD CC 4C 3F 7D 00 00 00 00 00 00 00 48 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 00 9A 99 59 3F

И поменять в нем 4 байта CD CC 4C 3F и 9A 99 59 3F?

Проще говоря, мне надо найти хекс значение и поменять в нем 4 байта без загрузки файла в память

READ ALSO
Помогите сделать сортировку

Помогите сделать сортировку

Нужно сделать сортировку двух массивов одновременно (товары и цены)Сортируется цена по убыванию, а вместе с ней и товары

203
Реферальная ссылка в Telegram, C#

Реферальная ссылка в Telegram, C#

Нужно сделать реферальную систему в Telegram BotПользователи будут переходить по ссылке, и бот должен отреагировать в ответ

172
Как правильно запустить PHP?

Как правильно запустить PHP?

Из учебника PHP взял пример:

198