Форум » [x]Harbour » Harbour dbf editor (продолжение) » Ответить

Harbour dbf editor (продолжение)

Pasha: Выкладываю апдейт (давненько не выкладывал): http://files.mail.ru/LXJ3D7 Whatsnew - смотрите сами, не помню уже. Хочу перевести на буржуйскую мову, но не все сообщения еще сделал, так что буржуям пока не показываю, чтобы их великий и могучий не шокировал :)

Ответов - 157, стр: 1 2 3 4 5 6 7 8 All

Andrey: Pasha пишет: то ключевое поле заполнять не надо. Да, оказывается просто... Посмотрел свои базы, 71 тыс. различий - такое же кол-во записей в базе. И сравнение выдаёт по ненужному полю (наверно которое первое стоит), дата и время модификации DBF файла (есть у меня такое поле) Наверное как буфер базы сохранился на диск, так и всё поменялось. Не то, не устраивает так. Мне нужно смотреть сразу несколько полей, которые можно задать. Придётся что то ваять самому... Посмотрел что есть на просторах инета, куча всего, а простой утилитки сравнения нет.

Pasha: Что сравнивать то ? Какой критерий ?

MIKHAIL: Pasha пишет: Нет, нельзя, это отдельная утилита. А жаль, прикрутить бы ее к HBEDIT добавить менеджер проекта и получилось бы не плохое IDE для консоли


Andrey: Pasha пишет: Что сравнивать то ? Какой критерий ? Список полей, через запятую можно. Там их штук 20 набирается. И где нибудь сохранить в файле, каждый раз замучаешься его набирать.

Pasha: Не все поля, а список. Это "по горизонтали" А по вертикали ? Запись номер <n> в первом файле сравнивать с ... чем ?

Andrey: Pasha пишет: А по вертикали ? Запись номер <n> в первом файле сравнивать с ... чем ? Можно по номерам записи (это если база не битая и кол-во записей в двух базах одинаковы), или по конкретному задаваемому полю. Я делаю поле в базе ID - AutoInc, или другое числовое поле.

SergKis: Andrey пишет Можно по номерам записи (это если база не битая и кол-во записей в двух базах одинаковы) Наверно, протокол должен быть, типа log файла для не равных полей по типам и значениям <ID>, <RecNo dbf 1>, <RecNo dbf 2>, { ; { <FieldName 1>,<Type 1>, <Type 2>,<Value 1>,<Value 2> }, ; { <FieldName 2>,<Type 1>, <Type 2>,<Value 1>,<Value 2> }, ; ... } + записи "лишние" из dbf 2, не участвующие в сравнении - нет такого <ID>

Pasha: Ссылка для скачивания новой версии программы: https://cloud.mail.ru/public/36tL/2gQ9b8DAv Что нового: - доработано копирование файлов для LetoDB - добавлена функция сравнения панелей для режима файлового менеджера LetoDB - добавлен поиск файлов по маске в для режима файлового менеджера - добавлен ввод списка полей в функции полного сравнения файлов Сохранение строки с именами полей делать не стал, так как эта строка привязана к конкретному файлу Строку можно без проблем сохранить самому во внешнем файле: наклацать поля, сохранить через буфер обмена, и при следующем сравнении вставлять ее через тот же буфер обмена Если вводить ключевое поле, то сравнения будет выполняться по нему, а не по номеру записи

Andrey: Спасибо Pasha ! Получилось.

Pasha: SergKis пишет: Наверно, протокол должен быть, типа log файла для не равных полей по типам и значениям <ID>, <RecNo dbf 1>, <RecNo dbf 2>, { ; { <FieldName 1>,<Type 1>, <Type 2>,<Value 1>,<Value 2> }, ; { <FieldName 2>,<Type 1>, <Type 2>,<Value 1>,<Value 2> }, ; ... } + записи "лишние" из dbf 2, не участвующие в сравнении - нет такого <ID> Именно так и делается, только выдается не лог, а таблица с возможностью заменить значения из архивного файла: всех, либо текущего Ну и саму таблицу различий можно экспортировать во всяческие форматы

SergKis: Pasha пишет Именно так и делается, только выдается не лог, Андрей показал мне картинку, на ней я не увидел типы переменных для обоих value. Через тип можно указывать наличие поле в том или др. файле и не увидел "лишние" записи в том или др. файле. И показалось, что не очень удобно понимать ситуацию value в таком виде в разных колонках. У меня есть похожий вариант со сравнением данных по штрих коду EAN, из разных источников данные. Оказалось удобно давать их в виде таблицы горизонтальной, а данные value в одной колонке друг под другом, имя поля уходит в header. Видно какой байт в value отличается

Pasha: Типы полей в двух файлах одинаковые, иначе сравнение не имеет смысла. Можно тип одной колонкой показать. Если записи добавлены, плюсики в таблице различий есть. На скрине Андрея их может не быть, так может их и нет по факту. А так в две строки показывать различия, что ли ?

SergKis: Pasha пишет А так в две строки показывать различия, что ли ? Как вариант, да, возможно удобней будет[pre2] RecNo | Field | N | Value ================================================= 622 | FIO | 1 | Асмандиярова Нина Васильевна | | 2 | Асцандиярова Гита Васильъевна | | ? | ? ? ? [/pre2] Тип поля можно после Field Name добавить колонку, в ней U или пробел - отсутсвие поля в каком то из файлов -> индикатор

SergKis: Pasha пишет Типы полей в двух файлах одинаковые, иначе сравнение не имеет смысла. Согласен, но в протокол данные должны попасть, как не совпавшие по типу Другой вариант, это горизонтальный просмотр базы, как показано в таблице, только все имена полей уходят в Header вместо слова Value, т.е. колонка RecNo\Key заморожена и имеем горизонтальный скролинг по колонкам записи и вертикальный по RecNo

Andrey: Маленькая неточность в программе: после изменение структуры БД, после возврата на таблицу, удалённые записи не выделяются красным цветом.

Pasha: Ссылка для скачивания новой версии программы: https://cloud.mail.ru/public/57yP/59HjU6KVD что нового: - увеличен размер буфера для ввода имени файла в некоторых режимах; - сделано восстановление цвета колонок после изменения структуры файла.

Andrey: Спасибо ! Ещё одну фишку бы надо в программу. Сохранять структуру dbf в текстовый файл. Но это не срочно, как время будет.

SergKis: Pasha пишет Ссылка для скачивания новой версии программы И скачивать не дает, даже не реагирует на клики.

Pasha: В режиме просмотра/редакции структуры по нажатию Ctrl+C структура копируется в буфер обмена

Pasha: SergKis пишет: И скачивать не дает, даже не реагирует на клики. кликнул, открылось облако с кнопкой скачать, кликнул, скачал



полная версия страницы