Сейчас на форуме: localhost1, vsv1, asfa, tyns777 (+4 невидимых) |
eXeL@B —› Вопросы новичков —› Borland VCL Form |
Посл.ответ | Сообщение |
|
Создано: 28 июня 2020 14:40 · Личное сообщение · #1 |
|
Создано: 28 июня 2020 15:13 · Личное сообщение · #2 |
|
Создано: 28 июня 2020 15:17 · Личное сообщение · #3 |
|
Создано: 28 июня 2020 16:22 · Личное сообщение · #4 |
|
Создано: 28 июня 2020 16:56 · Личное сообщение · #5 |
|
Создано: 28 июня 2020 17:16 · Личное сообщение · #6 sendersu так она в конечном итоге на ту же ObjectBinaryToText выходит >>Resources.cpp void __fastcall TResourceInfo::GetFormAsText(TDfm* Dfm, TStrings* DstList) { TMemoryStream *memStream = new TMemoryStream; memStream->Size = Dfm->MemStream->Size; Dfm->MemStream->Seek(0, soFromBeginning); ObjectBinaryToText(Dfm->MemStream, memStream); memStream->Seek(0, soFromBeginning); DstList->LoadFromStream(memStream); delete memStream; } Может быть есть смысл порыться с сырках lazarus? Вобщем-то формат незамысловатый: сигнатура + array(длина имени свойства, имя свойства, флаги свойства, значение свойства), вся соль в интерпретации флагов. Найти enumeration для них только. |
|
Создано: 28 июня 2020 17:23 · Личное сообщение · #7 |
|
Создано: 28 июня 2020 17:26 · Личное сообщение · #8 |
|
Создано: 28 июня 2020 17:46 · Личное сообщение · #9 zombi-vadim Вот тебе старого говнокода чуток. Интерпретируй fbab_28.06.2020_EXELAB.rU.tgz - dec_forms.zip | Сообщение посчитали полезным: RamMerlabs |
|
Создано: 28 июня 2020 18:27 · Личное сообщение · #10 |
|
Создано: 28 июня 2020 18:53 · Личное сообщение · #11 |
|
Создано: 28 июня 2020 18:59 · Поправил: RamMerlabs · Личное сообщение · #12 zombi-vadim Блин, в его же исходниках всё есть: >>#define vaInt16 3 Это и есть интерпретация флагов. Соответственно, нужно считать следующие 2 байта как значение свойства. | Сообщение посчитали полезным: zombi-vadim |
|
Создано: 28 июня 2020 19:01 · Личное сообщение · #13 давно все изобретено до нас DFMEditor, DFMExplorer, DFMConvertor ----- 127.0.0.1, sweet 127.0.0.1 | Сообщение посчитали полезным: mak |
|
Создано: 28 июня 2020 19:10 · Личное сообщение · #14 |
|
Создано: 29 июня 2020 20:47 · Поправил: zombi-vadim · Личное сообщение · #15 RamMerlabs Благодаря вам все получилось, осталось только несколько непоняток. Подскажите пожалуйста если вы в курсе, почему если строка закодирована в UTF 8 или Unicode, то за каким то лядом впереди нее пишется несколько нулей, причем эти нули в длине строки не учитываются, что это такое, если какое то выравнивание, то почему с переди строки, не могу понять что это.. |
|
Создано: 30 июня 2020 01:24 · Личное сообщение · #16 zombi-vadim Для бинарных данных размер - это dword. В сорцах же все есть, начинай с функции LoadFromBinaryDFM и смотри, как она парсит данные разных типов. | Сообщение посчитали полезным: zombi-vadim |
|
Создано: 30 июня 2020 20:01 · Личное сообщение · #17 |
eXeL@B —› Вопросы новичков —› Borland VCL Form |