|
0 / 0 / 0
Регистрация: 30.06.2023
Сообщений: 7
|
|||||||||||||||||||||
Классы для редактирования двоичного файла с настройками радиостанции30.06.2023, 21:10. Показов 1357. Ответов 29
Метки нет (Все метки)
Подскажите, есть задача: нужно редактировать файл. Есть программа для программирования радиостанций требуется ее переписать. Программа сохраняет файл в котором хранятся все настройки радиостанции. С помощью hex редактора "за реинженерил" файл определил назначение байтов в файле.
Теперь по теме: -Есть допустим Каналы, вся информация о каждом из них содержится в 52 байтах со сдвигом 42588 байта от начала файла до первого канала, +52 для второго и тд. для последующих. -Каждая единица информации может иметь разный тип и размер данных например, имя канала= string, частота= 3 байта в обратном порядке, мощность= 1 байт может быть 0 или 1(hight, low) Вопрос в том как удобнее хранить такие данные в памяти или как в принципе это делается. Несколько идей: 1. Создать класс chennal и создать в нем свои типы данных, много переменных разного типа и присваивать им значения по очереди в методе
В таком случае метод присваивающий значения получается длинный и корявый, постоянно приходится приводить типы
2. Создать массивы с данными, количеством байт для чтения и сдвигом Примерно так:
3. Создать класс в классе
0
|
|||||||||||||||||||||
| 30.06.2023, 21:10 | |
|
Ответы с готовыми решениями:
29
Редактирования двоичного файла С++ Есть ли готовые классы для редактирования видео Ссылка для скачивания двоичного файла |
|
|
||||||||||||
| 01.07.2023, 00:23 | ||||||||||||
0
|
||||||||||||
|
|
||||||||||||||||
| 01.07.2023, 01:07 | ||||||||||||||||
|
Все же приведу самый банальный пример, на всякий случай:
class Channel
0
|
||||||||||||||||
|
|
|
| 01.07.2023, 02:01 | |
|
wizard41,
1. не хватает публичного контракта к BitVector32 WCharacter, чтобы потом эти 9-бит таки плюхнуть в файл. 2. я бы такое использовал максимум для dto той части приложения, что будет отвечать за сохранение в файл. Ну и как бы, ТС выше писал что он после редактуры будет скармливать файл другому приложению, так что там никаких объединений не получится провернуть, а придется следовать заложеному контракту.
0
|
|
|
|
||
| 01.07.2023, 07:06 | ||
|
Про модель данных Тса: ммм... плодить столько Enum'ов - как бы монструозно. Подозреваю, что это далеко не все еще. Тут надо что-то другое точно.
0
|
||
|
|
||
| 01.07.2023, 08:43 | ||
|
1
|
||
|
|
|||||||||||||||||||||||
| 01.07.2023, 13:04 | |||||||||||||||||||||||
|
Енумы у него это константы, означающие что-то (FM,DMR... low, high...). Я бы предпочел, ну хотя бы список словарей... Динамичнее будет и удобнее извлекать. Добавлено через 2 часа 16 минут Вместо Enum'ов: class Helper
class Channel
Класс Wolfdp ChannelFFileManager извлек очередную порцию данных какого-то канала:
Примерно так. P.S. У ТС довольно большая структура в итоге. Я бы, в добавок, разделил ее еще, на более логические части, а не совал все в одну кучу. И приведена только часть свойств из 40+. Что там еще будет неизвестно.
0
|
|||||||||||||||||||||||
|
0 / 0 / 0
Регистрация: 30.06.2023
Сообщений: 7
|
|
| 03.07.2023, 21:26 [ТС] | |
|
Спасибо, про Dictionary<> вообще не знал, я так понял к словарям только по ключу можно обращаться.
Вот если бы так можно было: Dictionary<string, int> ConstantData = new{"First",1}; int temp = ConstantData["First"]; string temp2 = ConstantData[1];
0
|
|
|
2410 / 1942 / 764
Регистрация: 27.07.2012
Сообщений: 5,578
|
|
| 03.07.2023, 21:46 | |
|
Lev1992, ничто не мешает вам написать свой класс коллекции с таким функционалом.
1
|
|
|
|
||||||
| 03.07.2023, 22:38 | ||||||
|
Lev1992, нет ничего невозможного если я правильно понял
0
|
||||||
| 03.07.2023, 22:38 | |
|
Переделать программу для двоичного файла Алгоритм для программы по вычислению двоичного логарифма двоичного числа в машине Тьюринга Не корректно работает гиперссылка для открытия файла в PhotoShop для редактирования Чтение двоичного файла для последующей расшифровки DPAPI Чтение двоичного файла для последующей расшифровки DPAPI Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|