какой виджет использовать для отображения секторов жесткого диска в шестнадцатеричном виде?

Я хочу знать о таких утилитах, как winHex, которые являются редактором дисков
, они получают доступ к жесткому диску & представлять данные в шестнадцатеричном формате всего жесткого диска около 2 ТБ.
Как они достигают этого в одной области прокрутки & также обеспечить отмену функциональности в этом ….
какой виджет следует использовать для отображения такого огромного количества данных.
Я хочу сделать это приложение в QT.

0

Решение

Как они достигают этого в одной области прокрутки

Это не «единая область прокрутки», содержащая весь диск. Это полоса прокрутки и динамически генерируемый контент для любого дискового контента, который вы показываете в данный момент.

Просто рассчитайте положение на основе положения прокрутки (если ваш экран не имеет высоту 10000 пикселей, тем не менее, вы не сможете точно расположить курсор на нужном секторе диска).

также обеспечить отмену функциональности в этом ….

Функцию отмены, я ожидаю (я не смотрел на код), можно сделать, удерживая «адрес изменен, старое значение» в каком-то контейнере. Почти так же, как вы делали бы отмену информации для любого другого большого набора данных.

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

Тот, который показывает текст и позволяет вам перехватывать перерисовку и предоставлять свои собственные данные для каждой операции перерисовки. Боюсь, я не очень хорошо знаю QT, поэтому не могу посоветовать детали.

Очевидно, что один из факторов, который вы не рассмотрели, это «как вы открываете / монтируете весь диск в режиме чтения-записи, когда он уже смонтирован» — я не уверен, позволяет ли это, но если да, то я ожидаю это задействованный драйвер дискового фильтра, который имеет «боковые» интерфейсы, позволяющие выполнять обновления за кулисами файловой системы

Изменить: В ответ на вопрос в комментарии:

Есть два варианта: либо запись на диск при изменении данных. В этом случае код должен запомнить все исходные значения и восстановить их, когда пользователь выполнит undo операция. Альтернатива, которая примерно равна усилию, состоит в том, чтобы сохранить все изменения («изменить значение от 1000 до 05»), а затем при появлении запроса на отображение некоторого содержимого обработать любые изменения в отображаемом диапазоне перед фактической операцией отображения.

Очевидно, что если кто-то решит поиграть в «обезьяну на клавиатуре» в течение многих часов (недель, месяцев), чтобы заполнить ВЕСЬ диск довольно случайным контентом, то будет проблемой «запомнить» все это без нехватки памяти, поэтому вам, вероятно, нужно «у меня закончилась память для хранения информации об отмене, хотите ли вы сохранить то, что вы уже сделали?» Вариант типа.

Можно также рассмотреть сжатие типа «одно и то же значение, хранящееся в большом разделе» (например, если у вас есть «заполнение от А до В значением X», вы просто сохраняете, что «от А до В мы заполнили X», скорее чем хранить, потенциально, много мегабайт «A = X, A + 1 = X, A + 2 = X … B-1 = X, B = X»).

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector