Сейчас на форуме: tyns777, zds, JustLife, 2nd, morgot, Rio, CDK123 (+4 невидимых)

 eXeL@B —› Программирование —› Создание hex-view. С чего начать?
Посл.ответ Сообщение

Ранг: 3.9 (гость)
Активность: 0=0
Статус: Участник

Создано: 17 сентября 2009 01:04 · Поправил: DeathAngel
· Личное сообщение · #1

Косвенно вопрос связан с тематикой форума. Почему не хочу использовать готовые программы, так потому, что мне от нее нужно только умение просматривать любые файлы любых объемов в шестнадцатеричном виде, например таком, как по F3 в тоталкомандере. Ну и программ должна быть бесплатной. Да и выводить данные хочу так же как в тотале.
Значит что имею.
Пишу программу в делфи, в ассемблере есть небольшие познания, но думаю задачу лучше решить на высокоуровневом языке. Выводить я собрался в компонент richedit (таблицу), строчки при непомещающемся тексте расширяются вниз. С этим все ясно.
Пока файлы обрабатывать собираюсь маленькие, потому как не знаю как организовать чтение больших файлов. тут и столкнулся с проблемой. Пока вывожу в компонент мемо только текст, непечатаемые символы отображаю Ъ как в тотале:
Code:
  1.   AssignFile(f,'1.jpg');
  2.   reset(f,1);
  3.   i:=0;
  4.   buf:='';
  5.   j:=0;
  6.   while not EOF(f) do begin
  7.     BlockRead(f,s,1);
  8.     case s of
  9.       //печатаемые
  10.      17..255:
  11.         begin
  12.           buf:=buf+chr(s);
  13.           j:=j+1;
  14.         end;
  15.         else
  16.         begin
  17.           buf:=buf+chr($1c);
  18.           j:=j+1;
  19.         end;
  20.     end;
  21.     if j=16 then begin
  22.       Memo3.Lines.Add(buf);
  23.       j:=0;
  24.       buf:='';
  25.     end;
  26.     i:=i+1;
  27.     seek(f,i);

всё просто, вот только почему-то сначала происходит нормальное чтение, а потом даже если s попадает в диапозон 17..255 попадаем в условие else.
может я вообще ерундой страдаю и такая программа уже написана? или может я не с того начал?..
***
да, поиском по форуму я пользовался.




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 17 сентября 2009 01:25
· Личное сообщение · #2

ReseXplorer Delphi -> Demos посмотрите там есть HEX-редактор и много еще чего полезного

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes





Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 17 сентября 2009 01:25
· Личное сообщение · #3

мне кажетсо ты ерундой страдаешь, уже есть много копохожих компонентов, например мне понравилось это http://www.mirkes.de/files/delphi/

-----
Лучше быть одиноким, но свободным © $me




Ранг: 3.9 (гость)
Активность: 0=0
Статус: Участник

Создано: 17 сентября 2009 01:30
· Личное сообщение · #4

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



Ранг: 3.9 (гость)
Активность: 0=0
Статус: Участник

Создано: 17 сентября 2009 01:59 · Поправил: DeathAngel
· Личное сообщение · #5

http://www.mirkes.de/files/delphi/ - это в принципе подходит, только вот он, я так понял, с ANSI не арботает. кириллицу не показывает. Это бесплатный проект, изменения в него можно вносить? .. Планирую отправить в свой проект, поэтому это важно..
**
с большими файлами не дружит - пытается загрузить целиком.




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 17 сентября 2009 02:03
· Личное сообщение · #6

да, это бесплатный, мне казалось что оно работает с кирилицей

-----
Лучше быть одиноким, но свободным © $me




Ранг: 3.9 (гость)
Активность: 0=0
Статус: Участник

Создано: 17 сентября 2009 02:05
· Личное сообщение · #7

ну я пока смотрел только папку hex-viewer



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 17 сентября 2009 11:05
· Личное сообщение · #8

www.torry.net/quicksearchd.php?String=hex&Title=Yes
Сразу на первой страничке.

ATBinHex v.2.6.0
Fully functional
Source: Included
Exe-demo included
Download: CB2k6 CB2k7 CB5 CB6 D2005 D2006 D2007 D5 D6 D7



Ранг: 3.9 (гость)
Активность: 0=0
Статус: Участник

Создано: 17 сентября 2009 13:35
· Личное сообщение · #9

tundra37 ух, то что надо. это так же бесплатно и можно вносить изменения?



Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 17 сентября 2009 15:11
· Личное сообщение · #10

DeathAngel
Составь: фичи, которые:
1) обязательно должны быть в редакторе, иначе это не редактор
2) дополнительными, которые реально помогают чтото делать

-----
My love is very cool girl.





Ранг: 527.7 (!), 381thx
Активность: 0.160.09
Статус: Участник
Победитель турнира 2010

Создано: 17 сентября 2009 15:24
· Личное сообщение · #11

theCollision пишет:
должны быть в редакторе, иначе это не редактор


речь идет о хех-вьювере

-----
127.0.0.1, sweet 127.0.0.1




Ранг: 3.9 (гость)
Активность: 0=0
Статус: Участник

Создано: 17 сентября 2009 16:09
· Личное сообщение · #12

theCollision пишет:
DeathAngelСоставь: фичи, которые:1) обязательно должны быть в редакторе, иначе это не редактор2) дополнительными, которые реально помогают чтото делать

тут и фич нет. Должна быть только возможность просмотра любого файла, любого объема (тогда содержимое файла должно подгружаться по мере его просмотра) в шестнадцатеричном виде и рядом с шестнадцатеричным видом должен помещаться блок с эквивалентом в ANSI, если есть печатаемые сымволы. Как ориентир просмотрщик в тотал-командере.
Ни какой дополнительный функционал не нужен. Мне это нужно, что бы при просмотре файлов одного типа можно было увидеть в них одинаковые блоки байтов, присущие только этому типу данных. Автоматический поиск таких блоков я сделал, но он сильно не совершенен и иногда требуется вмешательство пользователя (ручное кропотливое сравнение).



Ранг: 3.9 (гость)
Активность: 0=0
Статус: Участник

Создано: 17 сентября 2009 21:58
· Личное сообщение · #13

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




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 17 сентября 2009 22:15
· Личное сообщение · #14

смотря что требует лицензия, но многие не смотрят на лицензию и делают что хотят

-----
Лучше быть одиноким, но свободным © $me





Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 17 сентября 2009 23:51
· Личное сообщение · #15

DeathAngel пишет:
Что бы не нарушать аторских прав, я должен включить в готовую программу исходники компонента или этого делать не обязательно?


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

-----
EnJoy!




Ранг: 3.9 (гость)
Активность: 0=0
Статус: Участник

Создано: 18 сентября 2009 02:03
· Личное сообщение · #16

Jupiter, BoRoV лицензию прочел, но ни чего не понял. Отпишу автору, судя по имени русский...
tundra37 разобрался с компонентом. круть , то что надо.
Всем спасибо за ответы, думаю тему можно закрывать




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 18 сентября 2009 08:11
· Личное сообщение · #17

Автор сам может закрыть, кнопка Закрыть тему под кнопкой Отправить сообщение.


 eXeL@B —› Программирование —› Создание hex-view. С чего начать?
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати