0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 16
1

HEX редактор

15.04.2013, 23:02. Показов 9288. Ответов 38
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подскажите новичку, пожалуйста! Какую компоненту лучше использовать TMemo или TStringGrid для отображения данных в 16-ом виде? Спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.04.2013, 23:02
Ответы с готовыми решениями:

Как написать свой Hex редактор
Как написать свой Hex-редактор ЗАРАНИЕ БЛАГОДАРЮ

Изменение нужного байта, hex редактор
Запустил *.exe, нашел через читЕнджи нужный адрес 4d215c, кликнул на него и показало *.exe+d215c -...

Редактор hex-значений нетипизированного файла через Memo
Хочу написать редактор такого вида: Открываем нетипизированный файл (20 мб) в Memo (или что-то...

Калькулятор, редактор списка строк, графический редактор
Помогите, кто чем может! Очень надо,хотя бы что то из этого сделать!

38
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
15.04.2013, 23:19 2
TDrawGrid
1
angstrom
15.04.2013, 23:46 3
От TCustomGrid, есть готовый компонент.
0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 16
16.04.2013, 10:31  [ТС] 4
А чем лучше TDrawGrid чем TStringGird?
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
16.04.2013, 10:38 5
1. Гибкость.
2. Независимость от объема и способа хранения данных.
1
0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 16
16.04.2013, 13:21  [ТС] 6
TStringGird мне вполне подходить, у меня файлы не более 4 Мбайт. TDrawGird что то не понял совсем,может пока не изучил до конца.
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
16.04.2013, 13:27 7
Глупо грузить в грид все 4 мбайт - юзер поколотит тебя за дикие "тормоза" в работе программы.
Грид должен показывать в каждый момент времени только фрагмент, непосредственно интересующий пользователя.
Обычно это блок размера не превышающего 256 байт.
0
0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 16
16.04.2013, 13:29  [ТС] 8
Я в StringGrid надо загрузить из массива данные, у меня все о дну строку грузить,как организовать правильный цикл?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
  for i := 0 to H do begin
    STmp := IntToHex(Arr[i], 2);
    //ShowMessage(STmp);
      //hexedit.RowCount:=i;
      //for Len:= 0 to 15 do begin
    hexedit.Cells[i+1,j]:=STmp;
          //j:=j+1;
        // end;
    hexedit.RowCount:= a+2;
    hexedit.Cells[0,i+1]:=IntToStr(i);
 
      status.Position:=i;
    end;
Миниатюры
HEX редактор  
0
0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 16
16.04.2013, 13:31  [ТС] 9
Цитата Сообщение от mss Посмотреть сообщение
Глупо грузить в грид все 4 мбайт - юзер поколотит тебя за дикие "тормоза" в работе программы.
Грид должен показывать в каждый момент времени только фрагмент, непосредственно интересующий пользователя.
Обычно это блок размера не превышающего 256 байт.
Да,тормозит однако!Вы правы!
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
16.04.2013, 13:34 10
Цитата Сообщение от Nazif Посмотреть сообщение
Я в StringGrid надо загрузить из массива данные
Ты вот подумай - зачем понадобилось держать данные в массиве (4 мб в твоем случае), да еще держать копию данных из массива в строковом виде (смело умножай 4 мб минимум на 8 - итого не менее 32 мб) ?

Добавлено через 1 минуту
Цитата Сообщение от Nazif Посмотреть сообщение
тормозит однако
Ну говорю же - побьют тебя за решение со стринггридом)
0
0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 16
16.04.2013, 13:34  [ТС] 11
То есть работаю с массивом, и в нужный момент показываю а гриде нужный блок во время прокрутки скрулом?
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
16.04.2013, 13:37 12
Совершенно верно.
0
angstrom
16.04.2013, 13:50 13
Предлагаемый вариант.
Миниатюры
HEX редактор  
0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 16
16.04.2013, 13:58  [ТС] 14
Цитата Сообщение от angstrom Посмотреть сообщение
Предлагаемый вариант.
Если не секрет, что за компонента?
0
angstrom
16.04.2013, 14:01 15
Немного сложноват для понимания, но рабочий.
Вложения
Тип файла: rar hexedit.rar (216.5 Кб, 322 просмотров)
0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 16
16.04.2013, 19:21  [ТС] 16
Цитата Сообщение от angstrom Посмотреть сообщение
Немного сложноват для понимания, но рабочий.
Да, для новичка сложноватый компонент.
0
0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 16
22.04.2013, 15:10  [ТС] 17
Возникла небольшая проблема с сохранением измененных данных в файл. Из ячеек StrigGrid беру данные в шестнадцатеричном представлении пример FE,DF,80- заполняю массив из байт,тут выдает ошибку,если 254,223,128 то нормально, типа не правильные данные,как преобразовать чтобы не ругался,не смог понять?
0
Пишу на Delphi...иногда
1423 / 1278 / 286
Регистрация: 03.12.2012
Сообщений: 3,914
Записей в блоге: 5
22.04.2013, 15:28 18
Цитата Сообщение от Nazif Посмотреть сообщение
тут выдает ошибку,если 254,223,128 то нормально, типа не правильные данные,как преобразовать чтобы не ругался,не смог понять?
какую ошибку выдает, неправильность данных может быть разная, при каких значениях данных "он" выдает такую ошибку?
0
0 / 0 / 0
Регистрация: 15.04.2013
Сообщений: 16
22.04.2013, 15:40  [ТС] 19
Код

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var
a, b, i, j, Size, H, Len, n, t : Integer;
save : TSaveDialog;
st :string;
begin
a:=hexedit.RowCount-1;
  j := 1;
  n:=0;
  t :=1;
    //status.Position:=0;
    for i := 0 to a * 16 do begin
      st:= hexedit.Cells[n+1,j];
       b := StrToInt(st);
       ShowMessage(IntToStr(b));
       Arr[i]:= b;//STmp;
      Inc(n,1);
         if n = 16 then
         begin
           Inc(j,1);
           Inc(t,1);
           n :=0;
         end;
      //status.Position:=i;
    end;
Миниатюры
HEX редактор  
0
2664 / 2270 / 279
Регистрация: 24.12.2010
Сообщений: 13,723
22.04.2013, 15:42 20
b := StrToInt('$'+st);
0
22.04.2013, 15:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.04.2013, 15:42
Помогаю со студенческими работами здесь

Калькулятор, редактор списка строк, графический редактор
Калькулятор:

Из ASCII в HEX
Доброго времени суток, форумчане. Понадобилось перевести значения ASCII => HEX. Нужно, например, в...

hex to string
Как из этого hex кода сделать читемые значения? В итоге должно получиться 8 символов:...

Получение hex
Вопрос как получить hex код цвета из диалога цветов? :)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru