Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Вытащить данные из файлов Paradox / 11 сообщений из 11, страница 1 из 1
11.01.2017, 15:02
    #39382338
just_vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вытащить данные из файлов Paradox
Есть файлы, выгружаемые из внешней очень легаси системы (в ней соответственно ничего изменить нельзя), расширение .db, как показало исследование это файлы от БД Paradox и в ручную можно открыть с помощью Paradox Data Editor.
Подскажите, был ли у кого нибудь опыт работы с такими файлами из java (пытался гуглить, вроде есть некий jdbc драйвер, но за него просят денег)? Или может быть есть консольные тулзы, позволяющие конвертировать эти файлы в адекватный формат csv/xml и т.д.? Или может быть какое то вменяемое описание этого формата, чтобы можно было самостоятельно написать парсер этой штуки?
...
Рейтинг: 0 / 0
11.01.2017, 15:17
    #39382352
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вытащить данные из файлов Paradox
...
Рейтинг: 0 / 0
11.01.2017, 15:52
    #39382402
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вытащить данные из файлов Paradox
just_vladimirЕсть файлы, выгружаемые из внешней очень легаси системы (в ней соответственно ничего изменить нельзя), расширение .db, как показало исследование это файлы от БД Paradox и в ручную можно открыть с помощью Paradox Data Editor.
Подскажите, был ли у кого нибудь опыт работы с такими файлами из java (пытался гуглить, вроде есть некий jdbc драйвер, но за него просят денег)? Или может быть есть консольные тулзы, позволяющие конвертировать эти файлы в адекватный формат csv/xml и т.д.? Или может быть какое то вменяемое описание этого формата, чтобы можно было самостоятельно написать парсер этой штуки?

Если мне не изменяет память раньше в Windows были ODBC драйвера для Paradox.
...
Рейтинг: 0 / 0
11.01.2017, 17:09
    #39382505
just_vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вытащить данные из файлов Paradox
Blazkowicz https://code.google.com/archive/p/paradoxdriver/
не работает?
не работает, вываливается с BufferUnderflowException, но пустые файлы открывает, даже какие то метаданные по ним показывает

Еще пробовал https://github.com/teverett/paradoxReader/blob/master/README.md в общем с ходу тоже не жует нормально файлы, судя по всему не знает некоторых типов данных и есть проблемы с кодировкой, но внешне походит на то, что можно допилить самостоятельно.
...
Рейтинг: 0 / 0
11.01.2017, 17:11
    #39382507
just_vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вытащить данные из файлов Paradox
mad_nazguljust_vladimirЕсть файлы, выгружаемые из внешней очень легаси системы (в ней соответственно ничего изменить нельзя), расширение .db, как показало исследование это файлы от БД Paradox и в ручную можно открыть с помощью Paradox Data Editor.
Подскажите, был ли у кого нибудь опыт работы с такими файлами из java (пытался гуглить, вроде есть некий jdbc драйвер, но за него просят денег)? Или может быть есть консольные тулзы, позволяющие конвертировать эти файлы в адекватный формат csv/xml и т.д.? Или может быть какое то вменяемое описание этого формата, чтобы можно было самостоятельно написать парсер этой штуки?

Если мне не изменяет память раньше в Windows были ODBC драйвера для Paradox.
Вроде Oracle грозился выпилить jdbc-odbc, но, наверное, тоже вариант.
...
Рейтинг: 0 / 0
11.01.2017, 17:15
    #39382509
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вытащить данные из файлов Paradox
just_vladimirВроде Oracle грозился выпилить jdbc-odbc, но, наверное, тоже вариант.
Ну, его выпилили из JDK. Это не значит что его нельзя использовать самостоятельно. Можно взять любую стороннюю реализацию. Многие даже подключают реализацию из JDK 7. Не уверен, правда, что это легально для Oracle JDK. Но для OpenJDK проблемы быть не должно.
...
Рейтинг: 0 / 0
11.01.2017, 22:52
    #39382755
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вытащить данные из файлов Paradox
Вроде ODBC-JDBC выпилили из 64 бит ((( (или не сделали/не смогли)

Ну и коммерческие драйвера за деньги как вариант. Если реально нужен именно Paradox и не достаточно просто сконвертировать файлы в что-то более Java-варимое

IMHO & AFAIK
...
Рейтинг: 0 / 0
12.01.2017, 06:09
    #39382842
just_vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вытащить данные из файлов Paradox
Leonid KudryavtsevВроде ODBC-JDBC выпилили из 64 бит ((( (или не сделали/не смогли)

Ну и коммерческие драйвера за деньги как вариант. Если реально нужен именно Paradox и не достаточно просто сконвертировать файлы в что-то более Java-варимое

IMHO & AFAIK
Будет достаточно, если будет возможность в автоматическом режиме выполнять конвертацию этих файлов во что нибудь java-читаемое. Условно мне выгрузили эти файлы, я дернул какую-нибудь командлайн тулзу, она превратила эти .db файлы в .csv / .xml / что угодно, что можно прочитать без лишних приседаний из java и все, я буду счастлив.
...
Рейтинг: 0 / 0
12.01.2017, 09:27
    #39382883
just_vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вытащить данные из файлов Paradox
Пытаюсь допилить библиотеку с github, споткнулся о кодировки, подскажите куда копать. Разбор файла идет с использованием guava'вского LittleEndianDataInputStream, вначале в заголовке идут всякие разные метаданные (какие поля, какая у них длинна, какие типы) они все в виде чисел и это нормально парсится, а вот как дело доходит до строк, то начинается беда...

Логика чтения строк не замысловатая, расчет, что строка это null terminated:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
   public static String readString(LittleEndianDataInputStream littleEndianDataInputStream) throws IOException {
      final StringBuilder stringBuilder = new StringBuilder();
      int c = littleEndianDataInputStream.readUnsignedByte();
      while (c != 0) {
         stringBuilder.append((char)c);
         c = littleEndianDataInputStream.readUnsignedByte();
      }
      return stringBuilder.toString();
   }


На выходе получаю кривую кодировку вида:
кривая_кодировка$÷ák-÷ák8÷ák@÷ákR÷áke÷ákw÷ák€÷ák‰÷ák’÷ák›÷ák¤÷ák¬÷ákresttemp.DB

Если открыть мой проблемный файл редактором Paradox Data Editor, то там все красиво и пишет, что Language Driver "dbwinus0" и Code Page 1252.
Если открыть тестовый файл, который идет с библиотекой на гитхабе, то там все Language Driver "ascii" и Code Page 437.

Вопрос - как можно поправить чтение строки?
...
Рейтинг: 0 / 0
13.01.2017, 14:48
    #39384222
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вытащить данные из файлов Paradox
Будет достаточно, если будет возможность в автоматическом режиме выполнять конвертацию этих файлов.....
Paradox, Delphi / C++ Builder etc...

Возможно проще спросить на профильных форумах. В http://www.sql.ru/forum/delphi скорее всего у людей опыта общения с Paradox больше. IMHO & AFAIK
...
Рейтинг: 0 / 0
13.01.2017, 15:28
    #39384272
just_vladimir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вытащить данные из файлов Paradox
Leonid KudryavtsevБудет достаточно, если будет возможность в автоматическом режиме выполнять конвертацию этих файлов.....
Paradox, Delphi / C++ Builder etc...

Возможно проще спросить на профильных форумах. В http://www.sql.ru/forum/delphi скорее всего у людей опыта общения с Paradox больше. IMHO & AFAIK
Понял, я думал предложите что то готовое... А так да, уже расчехлил это говно мамонта Delphi.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Вытащить данные из файлов Paradox / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]