Модераторы: Akella
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Структура таблицы формата Paradox 
:(
    Опции темы
lvvdelta
  Дата 15.1.2003, 03:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 15.1.2003

Репутация: нет
Всего: нет



Помогите ! Если у кого-нибудь есть описание файла DB или кто-нибудь знает где его взять буду очень признателен.
PM   Вверх
AntonSaburov
Дата 15.1.2003, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 118



Возможно в Интернете где-то можно найти, но это закрытый формат (коммерческий) и потому вполне может быть, что публикаций на эту тему практически нет - Paradox не столь популярен. Увы :(
PM MAIL WWW ICQ   Вверх
Medved
Дата 16.1.2003, 01:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 7209
Регистрация: 15.9.2002
Где: Kazakhstan, Astan a

Репутация: 1
Всего: 154



Уделил часа два поиску(самому интересно стало), но так к сожалению ничего и не нашел. :(


--------------------
http://extreme.sport-express.ru/
...и неважно сколько падал, важно сколько ты вставал...
PM MAIL WWW ICQ Skype GTalk   Вверх
lvvdelta
Дата 16.1.2003, 02:30 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Ура! Нашел! :D
Если интересно могу опубликовать, но документация на английском.
  Вверх
AntonSaburov
Дата 16.1.2003, 02:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Штурман
****


Профиль
Группа: Модератор
Сообщений: 5658
Регистрация: 2.7.2002
Где: Санкт-Петербург

Репутация: нет
Всего: 118



Цитата
Ура! Нашел!
Если интересно могу опубликовать, но документация на английском


Конечно интересно. Публикуй ссылочку. Или что там ?


PM MAIL WWW ICQ   Вверх
lvvdelta
Дата 17.1.2003, 06:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 15.1.2003

Репутация: нет
Всего: нет



PM   Вверх
Страдалецъ
Дата 18.1.2003, 08:22 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Кстати, в свое время Борланд выпустила специальный набор библиотек для работы с базами парадокса. Может тебе не изобретать велосипед, а взять готовое решение от самого борланда?
  Вверх
DENNN
Дата 31.1.2003, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: нет
Всего: 43



у меня где-то есть описание формата файлов, сделанное неким америкосом методом этакой дедукции. к сожалению адреса не помню, но могу намылить если кому нужно.
По этой инфе я свой класс дописал, который у меня читает данные из файлов Paradox ver.1-ver.4 без всяких дополнительных ODBC и т.п.

К слову, он не сильно отличаеться от того же формата FoxPro *.dbf

Это сообщение отредактировал(а) DENNN - 1.2.2003, 03:08
PM ICQ   Вверх
Vit
Дата 31.1.2003, 22:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: нет
Всего: 207



А мне сбросить не можешь (и доку и класс) я бы в наш FAQ пристроил


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
DENNN
Дата 1.2.2003, 01:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: нет
Всего: 43



Sorry!
Не подумал, что тут в основном дельфеисты - класс на C++.
И еще, класс читает не все типы данных, только те которые мне были необходимы (текст, целые и вещественные числа).
Документации нет, а написать нет времени.
Отправлять?
PM ICQ   Вверх
Vit
Дата 1.2.2003, 02:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: нет
Всего: 207



Почему нет, тут довольно много программистов на С


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
DENNN
Дата 1.2.2003, 04:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

Репутация: нет
Всего: 43



Все описание и пара утилит лежит тут
http://www.byronref.com/rmb/pxspecs.htm

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

Это сообщение отредактировал(а) DENNN - 1.2.2003, 04:17
PM ICQ   Вверх
Гость_ГОСТЬ
Дата 25.10.2004, 17:06 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











From: "Сергей Перевозник" <[email protected]>
Subject: Описание формата файлов PARADOX
Date: 24 Oct 1997 06:27:30 GMT
Organization: ПОЛИКОМБАНК

Формат файла PARADOX
Составил : Сергей Перевозник


Дата - число дней с 31.12.0 - этому значению соответствует 80000000
Hex
текст - просто текст

Смещение пояснение

00 размер одной записи мл. байт
01 размер одной записи ст. байт

02 смещение конца заголовка мл. байт
03 смещение конца заголовка ст. байт
После этого адреса идут несколько байт 00
и начинаются данные. Данные выровнены по левому краю
поля, пустые места заполнены 00.

04
05 Значение этих двух байт всегда постоянно (по крайней
мере у меня так получилось) и равны 02 01 (H).
Может быть это версия Paradox (у меня 3.0).

06 число записей в файле мл. байт
07 число записей в файле ст. байт

08-09 Почему-то всегда 00.

A-B Часто бывает равно числу записей в файле.
(но почему-то не всегда, похоже это что-то другое)

C-D Часто бывает равно (A-B)+1.

21 число полей в записи.


__Описание полей.__

Таблица описания полей начинается со смещения 5A.
Поля описываются в формате:

КОД ТИПА РАЗМЕР (байт) КОД ТИПА РАЗМЕР (байт)

Код типа - указывает на тип поля.
Размер - задает размер поля в байтах.

Код типа поля:
01 - Alphanumeric
02 - Date
03 - Integer
05 - Currency
06 - Number

PS Если у кого есть дополнения и/или замечания - милости просим.


Файл данных Paradox (*.db) состоит из заголовка и набора страниц.
Страницы связаны в двусвязный список в соответствии с основным индек-
сом. Каждая страница хранит переменное число записей фиксированной
длины. Страница идентифицируется своим порядковым номером в файле дан-
ных. Под номер страницы зарезервировано одно слово.

1. Формат файла db:

Заголовок файла + Hабор страниц.

2. Формат страницы файла данных:

Type
tPage = record
NextPage : word;
PrevPage : word;
LastOfs : word;
Records : ....
end;

Поле LastOfs содержит смещение начала последней заполненной записи
на странице относительно поля Records ( для смещения относительно на-
чала страницы надо добавлять 3 слова ).
Поля NextPage и PrevPage содержат номера соответственно следующей и
предидущей страницы. Внутри страницы записи отсортированы по основному
индексу.
Свободные страницы внутри файла связаны в список с помощью полей
NextPage. Hомер первой свободной страницы хранится в заголовке.

Заголовок файла данных содержит служебную информацию о размере запи-
сей, размере страниц и.т.п. Кроме того он содержит информацию о полях
записи. Он состоит из общей части и набора описаний полей.

3. Формат общей части заголовка файла данных:

Type
tHeader = Record
hRecordSize : word; { размер записи в байтах }
hHeaderSize : word; { размер заголовка в байтах }
hPrimaryIdx : byte; { ??? связан с наличием основного индекса }
hPageSize : byte; { размер страницы в килобайтах }
hRecCount : longint; { количество записей в файле }
hPageCount : word; { количество страниц }
hFreePage : word; { номер первой свободной страницы, далее
Next...}
hTopPage : word; { первая страница в основном индексе }
hBottomPage : word; { последняя страница в основном индексе }
hReserved : array[1..15] of byte; { ??? для импорта не важны }
hFieldCount : word; { количество полей в записи }
end;

В версии Paradox 3.X описание полей начинается со смещения 58h.
В версии Paradox 4.X описание полей начинается со смещения 78h.

4. Формат описателя поля:

Type
tField = Record
FieldType : byte; { Тип поля см. ниже }
FieldSize : word; { Размер поля в байтах }
end;

Со смещения hFieldCount*6 + 83 от начала описателей полей хранится
список названий полей. В виде набора ASCIIZ строк. Hазвание может быть
длиной до 25 символов.



Типы полей:

1 - Alphanumeric { переменной длины }
2 - Date { 4 байта }
3 - Integer { 2 байта }
5 - Currency (Integer) { 2 байта }
6 - Double { 8 байт }
C - Memory
D - Binary
E - Formated memory Хранятся в Memo-файле
F - OLE object
10 - Graphic

Данные хранятся в следующем виде:

Alphanumeric - Массив символов дополненный до фиксированной длины
символом 0.
Типы со 2 по 6 хранятся в обратном порядке:
Integer - ст. байт, мл. байт
Double - 8, 7, 6, 5, 4, 3, 2, 1 - байт.
Числовые поля имеют инвертированый старший бит:
т.е. число 1234h хранится в виде 92 34.
  Вверх
Vit
Дата 3.11.2004, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Vitaly Nevzorov
****


Профиль
Группа: Экс. модератор
Сообщений: 10964
Регистрация: 25.3.2002
Где: Chicago

Репутация: нет
Всего: 207



Перенесено из баз данных


--------------------
With the best wishes, Vit
I have done so much with so little for so long that I am now qualified to do anything with nothing
Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Другие СУБД | Следующая тема »


 




[ Время генерации скрипта: 0.0908 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.