Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Другие СУБД Новый топик    Ответить
 Есть ли утилита сравнения dbf-файлов?  [new]
бУРов
Member

Откуда:
Сообщений: 150
Есть dbf-файлы. Они открываются DBF-навигатором.

Хотелось бы знать, существуют ли бесплатные утилиты для сравнения 2-х dbf-файлов?
13 мар 12, 13:19    [12238380]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли утилита сравнения dbf-файлов?  [new]
Khod
Member

Откуда: Ukraine, Kirovograd
Сообщений: 6963
бУРов,

А не проще их в текст экспотрировать и сравнить текстовые файлы?
13 мар 12, 15:40    [12240047]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли утилита сравнения dbf-файлов?  [new]
mayton
Member

Откуда: loopback
Сообщений: 37046
Слишком специфично. Да и критериев сравнения много. Проще в БД прогрузить и там используя операицию MINUS
выполнить всё что надо.
15 мар 12, 14:27    [12253426]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли утилита сравнения dbf-файлов?  [new]
ДохтаР
Member [заблокирован]

Откуда: Новоукраинск
Сообщений: 16864
mayton
Слишком специфично. Да и критериев сравнения много. Проще в БД прогрузить и там используя операицию MINUS
выполнить всё что надо.



Я не вижу специфичности ,
в постановке автора достаточно будет diff и еще чуть чуть написать ( найти) утилиту ( 10 строк ) по отрезке хедера.

Выхоп diff разложить в завичимости от > < под 2 хедера ,
и получить 2 дбфника с отличающимися относительно основных записями.

Приблизительно так.
15 мар 12, 21:40    [12256978]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли утилита сравнения dbf-файлов?  [new]
ДохтаР
Member [заблокирован]

Откуда: Новоукраинск
Сообщений: 16864
На баше и С( утилита по отрезке) не напрягаясь с перекурами за пару тройку часов можно заговнокодить.
15 мар 12, 21:42    [12256989]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли утилита сравнения dbf-файлов?  [new]
mayton
Member

Откуда: loopback
Сообщений: 37046
ДохтаР
в постановке автора достаточно будет diff и еще чуть чуть написать ( найти) утилиту ( 10 строк ) по отрезке хедера.

diff работает на байтово-битовом уровне. DBF-это более сложная структура. И два DBF могут физически
отличаться (за счёт удалённых строк и пустот внутри) а логически быть одинаковыми.
16 мар 12, 02:08    [12257719]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли утилита сравнения dbf-файлов?  [new]
ДохтаР
Member [заблокирован]

Откуда: Новоукраинск
Сообщений: 16864
mayton
ДохтаР
в постановке автора достаточно будет diff и еще чуть чуть написать ( найти) утилиту ( 10 строк ) по отрезке хедера.

diff работает на байтово-битовом уровне. DBF-это более сложная структура. И два DBF могут физически
отличаться (за счёт удалённых строк и пустот внутри) а логически быть одинаковыми.



Я про Юниксовый diff говорю.

man diff
diff - compare files line by line

В дбанике строки разделяются переводом строки.

С удаленными строками все вроде просто они в неизменном виде попадут в разницу ,
потом тулза которая обрабатывает разницу может файлы спаковать.
Они в оригинале удаленные, и в разницу попадут удаленными.
Момент который я не учел раньше , это разный порядок строк в файлах , ну для этого
после отрезки хедеров можно обычным сортом упорядочить файлы.
прогнать через дифф , распарсить разницу , и подкинуть под хедеры.
16 мар 12, 11:07    [12258573]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли утилита сравнения dbf-файлов?  [new]
mayton
Member

Откуда: loopback
Сообщений: 37046
ДохтаР
Момент который я не учел раньше , это разный порядок строк в файлах , ну для этого
после отрезки хедеров можно обычным сортом упорядочить файлы.
прогнать через дифф , распарсить разницу , и подкинуть под хедеры.

Да ну... всё равно чугунный лапоть получается. Задача сравнения dbf файлов
как постановка - безсмысленна. Автору нужно сравнить контент который там
лежит. А это порождает постановку полноценного парсера dbf, операции
сортировки для ключа сравнения. И бог знает чего автор захочет завтра.
А вдруг ему надо будет еще и отчёт сформировать? Вобщем придём к концепции
создания еще одной rdbms. Да и сама постановка - туфта. Если нужен полноценый
аудит изменений то это делается в той точке, где данные зарождаются.
16 мар 12, 12:47    [12259491]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли утилита сравнения dbf-файлов?  [new]
ДохтаР
Member [заблокирован]

Откуда: Новоукраинск
Сообщений: 16864
mayton
Да ну... всё равно чугунный лапоть получается. Задача сравнения dbf файлов
как постановка - безсмысленна.


Я как системный архитектор отреагировал , если кто то будет настаивать
что ему нужно сравнение ДБФ в технологическом процессе без всяких подробностей ,
я бы спроектировал эту часть так как описанно выше, затратил бы офциально 3 раб дня
из которых реально 1 час мой на разжовывание задачи нужным исполнителям,
3 -5 часов на чтение доки если кто то из них что то не знает ,
и 3-5 часов на реализцию с тестированием.

Если решение когото не устраивает в тех процессе ,
пусть ставят задачу правильно и начнем следующую итерацию.

Я по таким мелочным задачам не ввязывась в доказательства , что нужно делать по другому
я делаю так как просят. Формально ко мне и к решению придраться тяжело.
Потому как критерии сравнения не указыны. В бумажку меня не ткнут, что зделано не так.


Когда проект на месяцы , там уже можно поспорить что и как делать, зачем и кто кому что и сколько должен.

С момента появления топика , как раз прошли эти 3 дня.
16 мар 12, 16:12    [12261677]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли утилита сравнения dbf-файлов?  [new]
MBG
Guest
Достаточно сделать дамп и сравнить diff (консольный diff, tkdiff, etc.). Дамп делает, например, утилита

sqlite3-dbf - converter of XBase / FoxPro tables to SQLite

Отличающиеся строки можно залить в SQL СУБД для дальнейших манипуляций.
9 апр 12, 17:22    [12389260]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли утилита сравнения dbf-файлов?  [new]
alexvav
Member

Откуда:
Сообщений: 60
бУРов, DBF Comparer – это метод для поиска дубликатов DBF файлов, если их поля данных не соответствуют или наоборот соответствуют.
7 июн 12, 14:01    [12681939]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Есть ли утилита сравнения dbf-файлов?  [new]
Марат56
Member

Откуда:
Сообщений: 4
Когда мне понадобилась такая проверка, воспользовался утилитой "SQL Explorer" от Borland (можно использовать любую утилиту, позволяющую делать SQL запросы к таблицам .dbf и поддерживающую join). Следующий запрос выводит количество записей обеих таблиц и количество полностью совпадающих записей двух таблиц (в условии join должны быть перечислены все поля)

select '1.new ',count(*) from "new.dbf"
union
select '2.old ',count(*) from "old.dbf"
union
select '3.join',count(*) from "old.dbf" t1
join "new.dbf" t2 on
t1.field1=t2.field1 and
t1.field2=t2.field2 and
...
t1.fieldN=t2.fieldN

если значения не совпадают - таблицы содержат неодинаковые данные
14 дек 16, 10:20    [20000948]     Ответить | Цитировать Сообщить модератору
 Re: Есть ли утилита сравнения dbf-файлов?  [new]
Garrick
Member

Откуда: Москва
Сообщений: 2845
Khod
бУРов,

А не проще их в текст экспотрировать и сравнить текстовые файлы?

DBF и есть текстовый файл.
20 дек 16, 08:51    [20025462]     Ответить | Цитировать Сообщить модератору
Все форумы / Другие СУБД Ответить