Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 11689
Последний выпуск: 19.06.2015

формат БД

58K
12 мая 2010 года
fcdesant
9 / / 12.05.2010
Добрый день.
У меня вопрос. Есть файловая БД.
Надо найти чем её можно открыть. И еще лучше чем к ней подключится.
файлик/и могу выслать на мыло. Тут ругается что много весят :(
Пробывал что то получить от winhex но увидел только начало - 43 4D 4D 49
Подскажите откуда начинать и куда капать.
Страницы:
38K
08 января 2015 года
bunak
27 / / 04.04.2013
Цитата: Sandulf
А никто не пробовал вместо разбора постоянно меняющегося формата БД разобраться с функциями LexDdm.dll в ETKA? Это ж по сути набор функций для работы с данной БД.


это если подключаться к ЕТКА то можно, а если нужно сливать в MySQL (т.е. максимально точно знать формат полей в таблице) - то все равно отслеживать придется

38K
15 января 2016 года
bunak
27 / / 04.04.2013
В списке запчастей выбранной подгруппы в поле "ВВОД ДАННЫХ ПО МОДЕЛИ" можно также встретить PR-номера. Они встречаются в разных форматах со специальными символами внутри , например
Цитата:
PR-N7U/N7V
PR-Q1A,N3Q
PR-0GV+ARX
PR-0GV+AVU
PR-0GE+
PR-0GE,7GE+

Расшифровывать следует вот так

Цитата:
PR-N7U/N7V - любой из этих номеров должен присутствовать в расшифровке вина (они одной "фэмили" - SIB-Обивка сидений, т.е взаимоисключающие)
N7U SIB Обивка сиденья Alcantara и Perlnappa Обивка сидений
N7V SIB Обивка сиденья из драпировочной массы иPerlnappa Обивка сидений
PR-Q1A,N3Q - оба кода должны присутствовать (они с разных фэмили)
N3Q SIB Обивка сидений: кожа "Feinnappa" Обивка сидений
Q1A VOS Стандартные передние сиденья Передние сиденья
PR-0GV+ARX - "0GV" - Евро 2, ARX это уже код коробки или двигателя (не PR!)

соответственно "+" это просто перечисление/разделение условий, т.е там human readable строка вида
"двигатель А + PR-коды XX1 или XX2 и ZZZ + коробка Б или С"
оболочка естественно для фильтрации использует не эту строку, у нее данные в нормальном виде есть )

Страницы V -> СИМВОЛЫ Полное описание использования сочетаний кодов и спец символов.

38K
15 января 2016 года
bunak
27 / / 04.04.2013
Подбор запчасти к VIN

отдельно по очереди проверяются дата, двигатель, коробка, пр-коды,коды стран, цвета и другое
"ВВОД ДАННЫХ ПО МОДЕЛИ" тоже участвует в фильтрации, но только строки вида F[D|M...] XXXX >> YYYYY
то есть "интервалы" дат, винов, серийников двигетеля и тд...
такие строки имеют определенный формат, нередко они кривые в данных

...еще учитывается "применимость верхнего уровня", то есть если "группа" по фильтру не подходит то автоматом не подходят и все детали,
хотя отдельно некоторые/все детали могут по фильтрам подходить...
89K
10 июля 2016 года
nicole_rad
2 / / 10.07.2016
Здравствуйте уважаемые!
Не судите строго, возможно пишу не в той теме, но вижу, что здесь есть люди, которые работают или понимают принципы ADABAS + Natural.
Сложилось так, что мне приходится работать с системой, которая писалась лет 10-15 назад.
Если коротко то: есть Server Linux Suse Enterprise 10 на котором крутится ADABAS. Есть много программ и подпрограмм написанных в Natural.
Доступ к данным осуществляется через браузер по http.
Чтобы лучше понять - прикрепил схему работы ...
В этом направлении я полный новичок, поэтому извините за примитивные вопросы.
Вопросы:
1. Где точка входа (файл с которого начинается работа) всех этих подпрограмм?
2 .Как делать изменения в этих программах (подпрограммах)?
Я поставил Natural на Windows по удаленке подключаюсь на сервер, открываю нужную программу, делаю изменения на после перезапуска программы ничего не меняется - вроде ничего
и не менял (пробовал даже просто изменить заголовки полей) - ничего.
3. Есть необходимость экспорта данных из БД в .txt or .dbf. Для этого делаю бэкап БД на сервере -> разворачиваю его на локалке в себя,
а дальше ... (как я понимаю нужно создать для каждой таблицы (файла) БД DDM объект и с него уже выбирать данные?)
Так вот как это сделать? если можно детально ..
87K
20 декабря 2016 года
elia
6 / / 20.12.2016
Цитата: Lerkin
1. Читаем 2 байта размера записи (26 00): длина записи - 38 байт
2. Читаем байт размера битовой маски полей (01): длина маски - 1 байт
3. Читаем этот один байт маски (90): в двоичном коде - 10010000.

...

Отсюда видно, что в данной записи присутствуют поля только TS и Text.

4. Поле TS имеет тип D (очевидно целочисленная 32-х битовая). Читаем 02 00 00 00 (число - 2, наверное просто номер строки)
5. Поле Text имеет тип S (очевидно строка переменной длины). Поэтому читаем байт размера длины строки 01: - размер длины строки - 1 байт.
6. Читаем этот один байт 1E: длина строки - 30 байт.
7. Читаем 30 байт поля Text. Получаем строку: ==============================
8. Чтение записи завершено. Повторить с начала всех для последующих строк :)

С другими типами полей и методами их чтения - экспериментируем.

Очень жестокий вариант получается в таблицах каталога (файлы KAT*.*), для которых единый файл описания данных KATALOG.DDM. Его содержание в ETKA 7.5:

Цитата:
[FILE1]
fdt=Kataloge.fdt

[DDF]
cnt=35
1=AA,S ;Bildtafel
2=AB,S ;ET-Vor
3=AC,S ;Teilenummer
4=AD,S ;OU
5=AE,S ;BTPos
6=BA,I ;Einsatz
7=BB,I ;Auslauf
8=CA,S ;HG/UG
9=CB,S ;Grafik
10=DA,I ;TSBen
11=DE,S ;Benennung
12=DB,I ;TSBem
13=DF,S ;Bemerkung
14=DC,I ;TSMoa
15=DG,S ;Modellangabe
16=DD,S ;Stьck
17=DH,S ;TabET
18=C0,S ; PR-Nummer
19=C1,S ; Landessetzung
20=C2,S ; Baugruppen
21=C3,S ; Getriebekennbuchstaben
22=C4,S ; Ausstattungsvarianten
23=HF,S ; Farbkombi
24=HG,S ; MKB-4-stellig
25=IA,I ;Einsatz
26=IB,I ;Auslauf
27=JA,S ; MV
28=JC,S ; MV Tnr
29=JD,S ; MV Stk
30=KB,I ; PaktID
31=KC,S ; PaketArt
32=KD,I ; PaketStk
33=LA,S ; HTG
34=MA,I ; Bildtafel
35=MB,I ; Bildtafel

[GCX]
FeldDispLen=3400

Открываю файл KAT865.BIN, читаю записи и вижу, что размер битовой маски, указываемый в 3-ем байте, гуляет от 2 до 5 байт. Их в двоичный формат переводить в прямом порядке или обратно (BigEndian, LittleEndian)?

Почему в текстовых полях море мусора в виде управляющих символов? Я их заменяю на пробелы, но может в них есть какой-то глубокий смысл?

87K
20 декабря 2016 года
elia
6 / / 20.12.2016
Цитата: Number
Опять появилась подобная задача(новый справочник), но старая проблема так и не решена. Хочу обновить алгоритм, но не нашел информации о том как определить - есть битовая маска в файле или нет. Те 2 байта, после числа колонок в fdt это номер группы файлов. Для каждой группы приходится руками ставить способ чтения. Из разных групп беру 2 таблицы. ddm, fdt у них подобны. Но в бин у одного, длина блока, длина маски и сама маска, а у другого сразу длина блока длина первого поля, значение и т.д. для остальных. Ведь должен быть более логичный способ определения, а не просматривать начало, каждого бинарника?

В заголовке файла *.FDT (первые 54 байта) читать второй байт после (шаблона) имени файла с данными:
- 4E (N) - нет битовой маски
- 49 (I), 00 - есть битовая маска

87K
27 декабря 2016 года
elia
6 / / 20.12.2016
Цитата: elia
Почему в текстовых полях море мусора в виде управляющих символов? Я их заменяю на пробелы, но может в них есть какой-то глубокий смысл?

Отвечаю сам себе: это 1-байтовые поля с указанием длины следующей за ним подстроки. Данные хранятся в формате, удобном для вывода блоков на печать в репортах...

87K
27 декабря 2016 года
elia
6 / / 20.12.2016
Цитата: bunak
Цитата: Sandulf
А никто не пробовал вместо разбора постоянно меняющегося формата БД разобраться с функциями LexDdm.dll в ETKA? Это ж по сути набор функций для работы с данной БД.

это если подключаться к ЕТКА то можно, а если нужно сливать в MySQL (т.е. максимально точно знать формат полей в таблице) - то все равно отслеживать придется

Надо подключаться тем или иным инструментом для связи баз данных. Но!

У Softwareag есть тестовая версия сервера для загрузки (под Винду!), но я ее для скачивания так получить и не смог - явно сайт и политики на нем писались в базе adabas и по идеологии этой системы :):):):):)

Есть сторонние инструменты для миграции, но у всех них есть две общие черты:
1) Хрен поймешь из описаний нужен ли сам adabas сервер для миграции или достаточно только файлов с данными?
2) Нет триальных версий и цены только по запросу в почте.

У Oracle есть Gateway для Adabas, но он требует установленного сервера Adabas и только на IBM z/OS...
В общем это все, связанное с Adabas, какая-то настолько замкнутая экосфера, что скорее всего нам остается только продолжать пилить свои просмоторщики этих файлов :)

87K
10 января
elia
6 / / 20.12.2016
Цитата: Lerkin

2. Типы и размеры полей
Перечисляются сразу после заголовка.
Код:
--------------------------------------------------------------------------------
Размер         Описание
--------------------------------------------------------------------------------
3 байта        Имя поля (ASCIIz)
2 байта        Размер поля
2 байта        Тип счетчика (ниже объясню)
2 байта        ???
2 байта        ???
2 байта        Тип поля. Тут такая штука: типы заданы кодом. Вот некоторые, которые понял:
        0x0a:       беззнаковый символьный (unsigned char)
        0x012:      знаковый символьный (char)
        0x14 и 0x16:   знаковый целочисленный (int)
        0x22:       символьная строка, указанной длины (char[...])
        Соответственно, длина указана в "Размере поля"

Перепишу дополненный вариант:

Код:
--------------------------------------------------------------------------------
Размер         Описание
--------------------------------------------------------------------------------
3 байта        Имя поля (ASCIIz)
2 байта        Размер поля
2 байта        Тип счетчика (ниже объясню)
2 байта        Тип поля:
        0x01:       Superstruct (группа полей). Битовая маска накладывается на Superstruct целиком. В следующих строках указаны поля,
                    входящие в данную Superstruct.
        0x02:       Struct (поле разбито на субполя (subfields) для облегчения разметки вывода результатов). Битовая маска
                    накладывается на Struct целиком. Каждое субполе предваряется 2-байтным указателем его длины.
        0x03:       Обычное поле с данными
2 байта        Счетчик количества полей, входящих в Superstruct
2 байта        Тип данных в поле. Тут такая штука: типы заданы кодом. Вот некоторые, которые понял:
        0x0a:       беззнаковый символьный (unsigned char)
        0x012:      знаковый символьный (char)
        0x14 и 0x16:   знаковый целочисленный (int)
        0x1a:       Указатель на Superstruct (начало Superstruct и количество полей в ней, присутствующих в данной записи)
        0x22:       символьная строка, указанной длины (char[...])
        0x26:       Long int (только если внутри Superstruct?)
        Соответственно, длина указана в "Размере поля"
98K
10 января
zje
1 / / 10.01.2017
А кто-нибудь разобрался с файлом tvn.bin?
Пытаюсь сделать поиск по TVN, и думаю что основная информация в этом файле, а именно ссылка на нужный kat файл.
Там три поля
1. Teilenummer - это сам номер запчасти
2. Index - ??
3. Bitmap

С первым поля всё ясно, а вот что делать с двумя другими ни как не пойму..
Кто разобрался, подкиньте пожалуйста идей или направления в каком копать.. Или может этот файл вообще не нужен для поиска TVN.
Заранее спасибо ...
87K
16 января
elia
6 / / 20.12.2016
Цитата: zje
А кто-нибудь разобрался с файлом tvn.bin?
Пытаюсь сделать поиск по TVN, и думаю что основная информация в этом файле, а именно ссылка на нужный kat файл.
Там три поля
1. Teilenummer - это сам номер запчасти
2. Index - ??
3. Bitmap

С первым поля всё ясно, а вот что делать с двумя другими ни как не пойму..
Кто разобрался, подкиньте пожалуйста идей или направления в каком копать.. Или может этот файл вообще не нужен для поиска TVN.
Заранее спасибо ...

1. Teilenummer - тип данных varchar
2. Index - тип данных tinyint (1b)
3. Bitmap - тип данных bytes (как и varchar состоит из указателя длины и данных)

Битовых масок нет, соответственно для полей переменной длины, в случае отсутствия данных, все равно стоит указатель с нулевым значением, а самого поля нет (так называемые suppressed nulls для экономии места)

89K
06 февраля
Dmi
2 / / 06.02.2017
Доброго времени суток! года 3 назад я распарсил каталог запчастей Lexcom. есть вопросы, задавайте, постараюсь вспомнить, ответить
89K
06 февраля
Dmi
2 / / 06.02.2017
Были каталоги сельскохозяйственных запчастей. Форматы файлов - .bin, .ddm, .fdt, .pnt

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог