Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Помогите разобрать файл


Автор: JohnnySE 11.8.2006, 10:38
Файл - хранилище, но как открыть и получить стримы - не знаю

Автор: Snowy 11.8.2006, 10:59
Ну и что ты хочешь с этим файлом сделать?
Ну можно из него тескт вытянуть. UTF-8 видно невооружённым глазом.
А, чтобы вытянуть числовую информацию, нужно знать структуру записи.

Автор: Alexeis 11.8.2006, 11:03
Неплохо бы доки надыбать по формату файла, а то тут все совсем не очевидно.

Автор: drkot 11.8.2006, 11:09
файл структурирован с помощью "{}". подобно XML, только "теги" визуально равнозначные.
скорее всего имеет древовидную структуру (корень + вложения разных уровней)
разобрать его на первый взгляд не сложно, а вот где что (какая запись чего обозначает) это не очевидно (вовсяком случае для непосвященных)

Добавлено @ 11:11 
если число открывающих "{" и закрывающих "}" скобок одинаково, то однозначно "теговая" структура

Автор: Alexeis 11.8.2006, 11:12
Цитата(drkot @  11.8.2006,  11:09 Найти цитируемый пост)
скорее всего имеет древовидную структуру (корень + вложения разных уровней)разобрать его на первый взгляд не сложно, а вот где что (какая запись чего обозначает) это не очевидно (вовсяком случае для непосвященных)

Это ловко подмечено smile , но что делать с заголовком
Цитата

          
00000060 00000200 7fffffff 
"         
   e
  /      ?    [  >    z                                                                                                                                                                                                                                                                                                                                                                                                                                      
00000060 00000060 7fffffff 
Eb? ̏?     8 2 e e 0 3 2 0 - 1 d 3 a - 4 9 e c - b 0 3 3 - 5 e 8 e 2 3 3 9 0 0 8 3     
00000872 00000719 00002345 

и что в нем за данные?

Добавлено @ 11:14 
Вот это похоже на заголовок сегмента
Цитата

00000060 00000060 7fffffff 
Eb? Eb?     9 8 3 8 a c 8 c - 5 3 0 a - 4 9 e c - 9 9 e 4 - 0 a 5 2 6 9 c a a 2 f 8     
000008e0 000008e0 7fffffff 


Автор: drkot 11.8.2006, 11:26
Цитата(alexeis1 @  11.8.2006,  11:12 Найти цитируемый пост)
но что делать с заголовкомЦитата

это уже сложнее.
надо хотябы знать что за файл (кто его делает/юзает), оринтировочно что в нем хранися и для каких целей, посмотреть набор подобных файлов (на предмет отличий)

На мой взгляд:
Код

яяя          

стандартный заголовок
Код

[B]00000060 00000200 7fffffff [/B]
"  Ў  яяя„   
  яяяж      e
  яяя/  ®  яяяА  ?  яяяЬ  [  яяя>  Ѕ  яяяz   №   яяя                                                                                                                                                                                                                                                                                                                                                                                                                                

первое поле данных (жирным: тип поля; длинна поля; идентификатор )

Частенько встречается последовательность "яяя" возможно разделитель какихто полей

Автор: dvamaster 11.8.2006, 11:27
Код

9 8 3 8 a c 8 c - 5 3 0 a - 4 9 e c - 9 9 e 4 - 0 a 5 2 6 9 c a a 2 f 8

На GUID походит

Автор: drkot 11.8.2006, 11:37
Цитата(dvamaster @  11.8.2006,  11:27 Найти цитируемый пост)
На GUID походит

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


JohnnySE, отзовись. Без твоей помощи дальше врядли продижение будет.

Автор: dvamaster 11.8.2006, 11:38
Походтит на какую-то выгрузку или форму из базы данных

Добавлено @ 11:39 
Хотя, почему GUID'ы юзаются.

Скорее это форма с содержанием ActiveX компонентов

Добавлено @ 11:43 
А могет это внутренние компоненты, не смог найти ничего подобного в реестре

Автор: dumb 11.8.2006, 12:22
очень он похож(файлик) на плод 1C.
7FFFFFFF - что-то типа тэга, после которого идет смещение на структуру некоего заголовка, затем смещение на структуру тела. тело начинается строковым представлением заголовка "родителя", потом идет некая контрольная сумма, потом строковая структура из полей {}. некоторые тэги(например первый) содержат какой-то левак... ну это уже надо смотреть недра 1С, либо спрашивать у людей из лагеря любителей сего продукта. smile

Автор: JohnnySE 11.8.2006, 12:25
Сори за молчание - на обект выезжал,
Да это плод 1с v8 - структура их конфигурации, в предыдущей версии(77) - это был компаунд, а что теперь - не знаю

Добавлено @ 12:31 
Открыть через StgOpenStorage/OpenStream - не получается

Автор: JohnnySE 11.8.2006, 12:51
Цитата(dvamaster @  11.8.2006,  11:27 Найти цитируемый пост)
1:9 8 3 8 a c 8 c - 5 3 0 a - 4 9 e c - 9 9 e 4 - 0 a 5 2 6 9 c a a 2 f 8


Это и есть гуид, но его 1с использует как имя стрима
только без пробелов
9838ac8c-530a-49ec-99e4-0a5269caa2f8
2(1) как текст его можно было разобрать,но файл может быть дефрагментирован и строки могут лежать в
разных частях.

Автор: JohnnySE 11.8.2006, 14:58
Вот еще подсказали
Блочная структура. Сначала заголовок файла. Потом размер блока и данные этого блока. В первом блоке - ссылка на остальные блоки, в которых сообственно и содержатся данные.

Автор: dumb 11.8.2006, 15:14
Цитата(JohnnySE @  11.8.2006,  14:58 Найти цитируемый пост)
Вот еще подсказали

а чем тебя не устроило мое описание? - там довольно точно все расписано.
если что-то непонятно - спрашивай.

некий Демидов Денис (disa_da2@mail.ru) писал плагин для фара, который читает структуру этих файлов - можешь у него спросить.

Автор: JohnnySE 11.8.2006, 15:20
Спросил. Это он и подсказал.

Автор: dumb 11.8.2006, 15:27
т.е., проще говоря, исходник он не дал... smile
если сам не осилишь по моему описанию, вернусь с променада - подсоблю. smile

ps. пардон модераторам за получившийся чат

Автор: JohnnySE 11.8.2006, 15:49
1. Не дал.
Да и у него на Си написано, а мне на дельфи нужно.
Как искать эти блоки? не по байтно же разбирать заголовок?
Видимо сам не справлюсь

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)