За пару дней написал (на Visual C++) класс для разбора sha-файла, и на основе этого класса --- программу, выводящую схему sha в виде дерева.
Ссылки:
* Исполняемый файл и библиотеки к нему здесь (самораспаковывающийся архив)
* Исходный код здесь
Примечания:
* Игнорирует запись Make(xxx), считает что схема - для пакета Delphi
* Не любит "дилнных" (>1024) строк во входном файле, ломается на таких файлах.
* Не различает "реальный" и ссылочный компоненты (как сделствие, не выделяет никак последние)
* Требует установленного Hiasm (читает иконки и ini-файлы)
В дальнейшем хочу попробовать написать генератор ресурсных файлов из sha-файлов, но пока возник вопрос: а как распаковывать свойства Bitmap и Font?
Этот топик читают: Гость
Ответов: 5446
Рейтинг: 323
|
|||
карма: 1 |
|
Ответов: 3655
Рейтинг: 69
|
|||
iarspider, Хорошо работает
Это бы встроить в ХиАсм Ещё хорошо бы с иконками. А что должно отображаться в нижнем правом окне |
|||
карма: 0 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Вячеслав писал(а): Ещё хорошо бы с иконками.В смысле? В дереве иконки должны показываться, а свойства пока никак не обрабатываются (кроме подгрузки свойств по-умолчанию из ini) В правом нижнем окне раньше отображался "плоский" список элементов в схеме, сейчас там ничего не отображается (забыл убрать) |
|||
карма: 1 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Dilma, ответь пожалуйста на два вопроса:
1. Как распаковывать свойства типа Bitmap, Stream, JPEG и т.п.? 2. В чём разница между свойствами типа Combo и ComboEx? |
|||
карма: 1 |
|
Ответов: 3655
Рейтинг: 69
|
|||
iarspider писал(а): В дереве иконки должны показыватьсяНевижу ни одной иконки |
|||
карма: 0 |
|
Ответов: 574
Рейтинг: 1
|
|||
Вячеслав писал(а): Невижу ни одной иконкиА я вижу. Galkov писал(а): Что я делаю не так? |
|||
карма: 0 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Вячеслав, программа пытается считать путь к hiasm из реестра, если ей это удаётся - то она загружает все иконки из директории Icons и соответственно показывает их в дереве.
[size=-2]------ Добавлено в 20:04 Сейчас выложу подправленную версию. |
|||
карма: 1 |
|
Ответов: 9906
Рейтинг: 351
|
|||
iarspider писал(а): 2. В чём разница между свойствами типа Combo и ComboEx?HiAsm.chm писал(а): (*) отличие типа List от типа Enum состоит в том, что при генерации шаблона компонента свойству с типом List будет присвоено значение от 0 до Count-1, где Count - количество элементов в списке перечислений, т.е. индекс элемента, а св-ву с типом Enum будет присвоено само его значение. |
|||
карма: 9 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
а для чего утилита писалась?
|
|||
карма: 27 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Dilma,
iarspider писал(а):
В дальнейшем хочу попробовать написать генератор ресурсных файлов из sha-файлов А вообще - хочу сделать внешний (т.е. не вызываемый средой) кодогенератор для языка C++ с использованием wxWidgets (я тебе про это писал). Почему внешний? Потому что у меня сейчас нет Delphi на компе, чтобы ковыряться с имеющимися образцами, на VC++ (очевидно) нельзя написать - (типа PStrList в VC++ нет), а программировать в блокноте я не люблю. |
|||
карма: 1 |
|
Ответов: 2125
Рейтинг: 159
|
|||
iarspider писал(а): на VC++ (очевидно) нельзя написать Можно, я пробовал, и как раз на VC++. Инклуды, правда, с тех пор устарели (CGTShare менялся), но если сильно надо - могу доделать. |
|||
карма: 1 |
|
Ответов: 5446
Рейтинг: 323
|
|||
tsdima, брось что есть на spamto[at]yandex[dot]ru
|
|||
карма: 1 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
iarspider писал(а): типа PStrList в VC++ неткак этот тип связан с кодогенератором? |
|||
карма: 27 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Dilma, а вот так:
1. webCodeGen.dpr :
2. delphiCodegen.dpr :
|
|||
карма: 1 |
|
Ответов: 5446
Рейтинг: 323
|
|||
Залил новую версию.
Изменения: 1. Решена проблема длинных строк 2. Расширена выводимая информация о свойствах, теперь помимо названия и значения выводятся тип, значение по-умолчанию и (если есть) список возможных значений 3. Свойства типа 4 (Combo) и 14 (ComboEx) теперь отображаются в виде строк 4. Добавлен просмотр типа 15 (Font), для вызова - двойной клик по соответствующей строке таблицы Todo: 1. Индикация хода загрузки 2. Просмотр графических типов 3. Просмотр типа Stream [size=-2]------ Добавлено в 19:53 Забираем: Dist.zip (исходник) Release.exe (SFX-архив с исполняемым файлом и библиотеками) |
|||
карма: 1 |
|