DBFShow

Бесплатная программа, предназначена для просмотра и редактирования файлов DBF( dBase III, dBase IV, FoxPro, VFP). Разрабатывается как замена DBF Viewer 2000. Для запуска не требует никаких сторонних библиотек кроме Net Framework 2.0.

С 11.09.2019г.начиная с версии 0.116 для запуска необходим NET 4.0 плюс с программой распространяется dll для работы с xlsx файлами

Главное окно DBFShow

Благодарность
Огромная благодарность всем кто поддерживает проект, к сожалению Вы не оставили своих имён, чтобы Вас отдельно поблагодарить.

Вы можете поддержать проект, если у Вас возникнет такое желание 8)

Основные возможности

    • Поддержка следующих форматов файлов:dbf, txt, csv — текстовые файлы с разделителями, mem — файлы переменных в FoxPro
    • Работа с DBF, TXT, CSV файлами как с таблицей в едином интерфейсе
    • Поддержка типов: CHAR, DATE, NUMERIC, MEMO, BOOL, FLOAT, DATETIME, INTEGER, CURRENCY, DOUBLE,  MEMO (только чтение);
    • Возможность редактировать файлы более 4Гб;
    •  Все операции производятся в отдельных потоках с возможностью отмены операции (за исключением сортировки)
    •  Для запуска необходим Net Framework 2.0. Не использует сторонних библиотек, работа с файлами осуществляется напрямую;

    Возможности редактирования

    • Редактирование возможно как в таблице, прямо в ячейках, так и в отдельном окне как это реализовано в DBFViewer 2000 для этого необходимо нажать Ctrl+Enter на текущей записи
    •  Возможность копирования и вставки выделенных диапазонов в таблице, как мышкой, так и клавиатурой;
    •  Модификация данных (Удалить пробелы слева, удалить все пробелы, выровнять по правому краю, в верхний регистр в нижний регистр, перевернуть, с заглавной буквы);
    •  Контекстное меню дублирующее основные функции по модификации выделенных ячейки, столбца;
    •  Поиск и замена данных;
    •  Фильтрация данных, по одному-всем полям;
    •  Глобальный фильтр;
    •  Заполнение данных константным значением или номером по порядку с учётом установленного диапазона и дополнительного условия;
    •  Удаление, восстановление записей по условиям;
    •  Очистка, усечение, сжатие файлов;
    • Возможность перемешать записи, добавить n-ое количество записей
    •  Шифрование текстовых данных по XOR;
    •  Смена кодировки файла — в том числе и на UTF
    • Конвертирование между кодировками (в том числе и на UTF)
    •  Редактирование заголовка dbf файла;
    •  Добавление, удаление, переименование колонок;

    Дополнительные возможности

    •  Удаление дубликатов, дублирующих записей по выбранным полям с дополнительными опциями;
    •  Удаление дублирующих записей с использование алгоритмов нечеткого поиска
    •  Сортировка по одному нескольким полям одновременно;
    •  Сохранение порядка сортировки в файл;
    •  Разбиение файлов (создает файлы dbf или xls с именем значения в выделенной колонке, содержащие только это значение);
    • Объединение dbf файлов (как одного так и группы файлов);
    • Возможность добавления текущего файла к другим выбранным файлам dbf;
    • Форма статистики, группировки данных;
    • Форма математических операций с полями файла;
    •  Связь двух таблиц по установленным полям и возможность навигации
    • Возможность сравнить два DBF файла по выбранным полям и заполнить данными из одного файла в другой в случае совпадения
    • Возможность сравнить структуры 2 файлов
    • Экспорт в txt, csv, xls, sql
    •  и многое, многое
    • многое другое…
    Более подробно обо всех возможностях и изменениях программы можно посмотреть здесь: История изменений

152 Replies to “DBFShow”

  1. Здравствуйте!
    Экспорт dbf-таблицы в Excel 2007 не получается: поле типа CHAR c текстом в кодировке
    1251-Russian Windows почему-то преобразуется в колонку с кракозябрами типа «????».
    Или я что-то делаю не так? С уважением, Геннадий.

  2. Отличная программа, приятный интерфейс. И главное видно, что с душой сделано — а сейчас это такая редкость :). Спасибо за хороший инструмент!
    С уважением, Сергей.

  3. 1.Ваша программа по своим возможностям, конечно, превосходит общеизвестную
    DbfNavigator, но есть момент, связанный с кодировкой таблиц, а именно: в FoxPro
    под DOS (прошу прощения за такую древность, но вот еще пользуюсь) применяются
    таблицы с пустым 29-ым байтом в заголовке, т.е. код 866 — кириллица DOS как бы
    принимается по умолчанию. Ваша программа, в отличие от упомянутой, текстовые
    поля с кириллицей в таких таблицах не идентифицирует. Конечно, это мелочь — если
    очень нужно, всегда можно самому кодовую метку внести в файл. И всё же …
    2.Нельзя ли ввести параметр, задающий ширину колонок, но чтобы (в отличие от
    того же Навигатора) значение параметра сохранялось при последующем
    обращении к программе.
    С уважением, Геннадий.

    1. 1. На этот случай есть возможность в опциях указать «Кодировку по умолчанию», тогда при открытии файла если 29 байт выставлен в 0, программа автоматически изменит на кодировку по умолчанию. Или Вам все таки необходимо, что бы 29 байт так и оставался нулевым?
      2. Сохранять ширину колонок по конкретным файлам? То есть запоминать имена файлов и измененную ширину колонок? Как вариант можно сделать (опционально) в зависимости от размера колонки выставлять автоматически размеры.

      1. 1. Спасибо за подсказку! Я не до конца осознавал
        полезность опции “Кодировка по умолчанию», её
        результат меня вполне устраивает.
        2.Насчет ширины колонок. Нет, я не имел в виду их
        сохранение по конкретным файлам, насколько я понимаю, это довольно сложновато реализовывать,
        да и не очень то нужно. Достаточно было бы то,
        чтобы параметр задавл одинаковую ширину для всех видимых колонок и всех просматриваемых таблиц,
        и чтобы этот режим сохранялся при следующей
        загрузке программы.
        С уважением, Геннадий.

        1. Ок. Размеры колонок добавлю в понедельник на работе. Дома работоспособности ноль 8)

  4. Программа отличная, большое спасибо. Но хотелось бы иметь возможность выбора шрифта для отображения содержимого файла.
    С уважением, Александр.

      1. Спасибо, все работает. И еще один вопрос: при закрытии файла дата/время изменения файла устанавливаются на текущие, даже если ничего не менялось. Это баг или фича?

        1. Не всегда, пока не смог понять почему. Но меняется лишь изредка, по крайней мере у меня… буду отлавливать «фичу» 8)

  5. Здравствуйте!
    Для таблиц VFP некорректно работает с autoincrement полями — при добавлении записи заполняет его значением 32, счетчик в заголовке не увеличивает.
    Поддержка CDX индексов (foxpro) не предусмотрена?

    1. Здравствуйте. Не было у меня никогда таблиц c autoincrement-ом. Обязательно проверю всё и исправлю.
      Индексы не предусмотрены. Хотел было сделать просмотр индексных файлов, но чтото посчитал не нужным

      1. PS. В качестве пожеланий — работать с программой на мой взгляд станет удобнее если:
        1. отображение удаленных при старте сделать настраиваемым;
        2. числовые величины выровнять вправо и отображать группами (если последнее сделать настраиваемым с возможностью применения параметров ОС — будет совсем шикарно).

  6. Как выполнить функцию «Добавление данных из других dbf файлов» ?

    1. «Файл\Добавить(Импорт)» — выбираете один или несколько файлов для объединения. Добавит новые записи с проставлением данных в совпадающие по имени поля.

        1. оппаньки… это что-то новое. Не могли бы Вы отправить Ваши файлы мне на почтовый ящик gerztrue@gmail.com. Такой ошибки здесь мне не приходилось видеть.

  7. Скажите, как сделать, чтобы отображалось содержимое MEMO — полей?
    Меня интересует CLIPPER — ная таблица (DBT — файлы). Есть такая возможность?

    1. Никогда не думал, что столкнусь с необходимостью импорта из SQL, над обдумать реализацию. Спасибо за пожелание.

  8. Программа чудесная! Использую вместо плагина в Far Manager.
    Из пожеланий — хотелось бы горячую клавишу на вызов структуры для удобства,
    а в информационной строке (которая в самом низу) добавить информацию
    про поле (тип (символьное, цифровое, дата,…) и размер) на котором находиться курсор.
    Спасибо!

    1. Спасибо за отзыв!
      Горячая клавиша — обязательно будет,
      а доп. информация — хорошая идея, тоже реализую

  9. Доброго времени суток. Программка маленькая, удобная и бесплатная — это приятно. Столкнулся с такой проблемой — мне необходимо объединить три столбца в один (причем через пробел чтобы было). Столбцы содержат имя, фамилию, отчество. Не смог этого осуществить в этйо программке, не планируется ли сделать подобную функцию объединения столбцов (желательно с возможностью делать это через пробел) в новой версии программки? Cпасибо.

    1. Спасибо! Средствами реализованными на данный момент в программе можно объединить несколько столбцов в один с любым разделителем. Попробуйте этот способ:
      1. Сделайте копию Вашего файла;
      2. Открываете свой файл (оригинал) и заходите в меню «Файл\Сравнить содержимое»;
      3. В новом окне открываете копию файла. Добавляете поля для сравнения, чтобы записи совпадали например Фамилия + Имя + Отчество + Дата рождения.
      4. Выбираем пункт меню «Проставить в поле» выбираем поле в которое будем сохранять объединенные значения;
      5. В поле «значения с» перетаскиваем мышкой столбцы в Вашем случае Фамилию, Имя и отчество, а в качестве разделителя выбираем пробел.
      6. Программа сопоставит по выбранным полям значения с таблиц, а так как они будут идентичны то всем проставит выбранные поля через разделитель.
      Попробуйте этот вариант. Он конечно не тривиален, но с ним можно решить множество задач 8) Вот еще описание этого режима: http://jobtools.ru/2013/11/dbfshow-kak-sravnit-soderzhimoe-dvux-dbf-fajlo/
      Отпишитесь, пожалуйста, получилось ли у Вас?

  10. Добрый день!
    Программа очень порадовала своим функционалом, спасибо автору. Буду всем ее рекомендовать.
    Есть вопрос, никак не могу понять как удалять строки. Помечаю на удаление стоит крестик, строка не исчезает, пробовал открывать другим ПО удаленные строки остаются, сохраняешь открываешь строки на месте только с крестиком. Подскажите пожалуйста.

    1. Спасибо за отзыв!
      Это особенность DBF формата строки помечаются на удаление, чтобы удалить помеченный на удаление записи физически из файла — надо его упаковать, сжать (ZAP). В dbfshow это «Правка\Сжать файл»

  11. Для моей задачи нехватает параметров командной строки, например чтобы приклеить «кусочек» к n — кол-во файлов.

    1. Можно реализовать, только поподробней пожалуйста.один файл приклеить ко всем остальным из перечня или все из каталога и т.д.

  12. Да именно так, было бы удобно реализовать работу с ключами. Допустим имеем n — количество dbf c одинаковой структурой. Имеем подготовленный «кусок» который необходимо добавить к n файлам. Сейчас это, Файл — Добавить(Импорт). Делать это для n файлов — долго. А вот если бы можно было бы запустить dbfshow -insert original.dbf add.dbf rezult.dbf. Было бы классно, потом в «батник» 🙂
    С меня «пиво» если сделаете оперативно 🙂

    1. не сразу заметил Ваш комментарий! Теперь понял, что Вы имели ввиду. Реализовано в 0.98.

  13. У меня 2 вопроса:
    1. Можно ли с помощью Вашей программы так отредактировать заголовок dbf-файла, чтобы не было ограничений на размер файла (больше 2 Гб, больше 4Гб, больше 200Гб) на количество полей (колонок больше 100000)? Будет ли после этого система программирования работать с такими файлами?
    2. Как можно получить Вашу программу?

    1. 1. Количество столбцов ограничено самой струткурой dbf заголовка. В два байта длины заголовка физические не уместить 10000000*32. Про 4 Гб точно сказать не могу, не было таких файлов), но здесь все зависит от того что вы используете. Если это 1С то не получится, так как используются индексы dbf в которых на это дело отведено 4 байта, которые максимально могут адресовать 2 Гигабайта. Если же просто хранить в dbf записи без индексов то я думаю, что это возможно, и естсественно использовать не FAT32 а NTFS
      2. Программу может получить скачаев её с этого сайта

  14. В 2 байта можно уместить 2^16=65536 номера столбца, т.е. это и есть теоретически максимальное кол-во столбцов. А в системе получается использовать не более 1600, а если пытаться сделать больше, то возникают ошибки.

    Я задавал подобные вопросы на другом форуме. Там мне ответил Дима Бандык:

    «Вот смотрите:
    http://softclipper.net/bazy-dbf/format-fajla-dbf.html

    Согласно этому формату (dBase III) количество записей задается 32-битным числом. Т.е. максимально возможное количество записей — 4294967296. Каждая запись — это строка.

    Количество полей в записи вообще не ограниченно. Каждое поле — это столбец.
    =====
    Именно этого формата я придерживался когда читал данные из ваших баз данных. Т.е. я убедился что ваши базы данных соответствуют этому формату. А значит имеют те же ограничения т.е. практически неограниченны.

    Причина по которой есть описанные вами ограничения на размер базы данных кроется видимо не в самом формате а в той программе при помощи которой вы создаете базы данных. Вероятно она почему-то не использует весь потенциал формата.

    Учитывая что вы назвали ограничение на размер файла в 2 Гб (а формат файла DBF вообще не имеет ограничения на размер файла а только на количество записей — при том что каждая запись не ограничена в размерах) я могу предположить что в вашем случае ограничение скорей всего связано с тем что программа использует 32-битную адресацию при чтении данных из файлов. Т.е. это внутренняя проблема программы которая читает или создает файлы DBF, но не ограничение самого формата DBF. Вероятно программа писалась еще в давние времена когда никто еще не предполагал что когда-то может понадобиться адресация более чем в 32 бита.

    На Delphi такого ограничения нет. При чтении и записи файлов используется 64-битная адресация. Поэтому я могу создавать и читать DBF-файл практически неограниченных размеров (вернее ограниченные размером в 18 446 744 073 709 551 616 байт 🙂 )»

      1. Скачал. Приятно сделанная и полезная программа. Буду размещать ее вместе с системой, которую разрабатываю. Но не нашел там работы с заголовком dbf-файла: его просмотра и корректировки в диалоге. Не подскажите где они? Я так понял, что эта возможность есть.

  15. Я могу физически работать с файлами, т.е. могу считать только-что созданный dbf-файл в виде значения текстовой переменной, заменить в ней любые байты на какие хочу и записать обратно с ем-же или другим именем. Мне интересно, можно ли таким путем снять ограничения на максимальное число полей и размер dbf-файла, которые есть в системе. Индексы мне в данном случае не нужны.

  16. PS
    Я спрашивал у разработчиков языка программирования возможно ли таким способом (путем корректировки заголовка DBF-файла) снять ограничения на его размер и число полей для программы, сделанном на этом языке программирования. Они ответили утвердительно. Значит мне нужно точно узнать какие байты заменить и на какие значения и попробовать создать базу, превышающую по этим параметрам те, что возможны по умолчанию. Надеюсь Вы в этом мне поможете советом, что и на что поменять. А остальное я могу сделать сам.

  17. Пока я сделал свой собственный формат баз данных вообще абсолютно ничем не ограниченный, кроме размеров носителя на компьютере, и пользуюсь им. Но это не очень удобно, т.к. мне пришлось переписать все функции, необходимые для работы с базами данных в этом формате. Я их все не переписал, а только основные. Но все равно в целом получилось не очень удобно (хотя в некоторых случаях даже удобнее, чем стандартными средствами). Я знаю, как все довести до ума, но у меня нет для этого времени да и вообще зачем изобретать велосипед, если его уже изобрели.

    1. Доработал DBFShow на открытие файлов, где больше 4 000 000 записей. До версии 0.99 выходила ошибка переполнения. Скачать можно по той же ссылке. Добавил в файл 8 000 000 записей размер dbf составил 5 Гигабайт DBFShow открыл его, другие редакторы (установленные на компьютере) вылетели с ошибкой. Сам FoxPro открывал файл, пока его размер не превысил 2Гигабайт

  18. Прекрасно. Большое спасибо за программу. Остается спросить у Вас, какие байты Вы скорректировали в заголовке и какие им присвоили значения. Тогда я попробую сделать тоже самое в своей системе и попробовать создать и открыть в ней гигантские DBF-файлы. Может быть получится, как получилось у Вас в своей системе. Я на это надеюсь. Я эту тему обсуждал на форуме разработчиков: http://bb.donnay-software.com/donnay/viewtopic.php?f=2&t=1294&sid=c5f126dfc44911e6144191efe92dc7e4

    1. Ничего не менял. Используется следующая формула для определения позиции начала строки в файле: header.headerSize + RowIndex * (long)header.recordSize. Значения headerSize и recordSize берутся из заголовка, то есть главное чтобы они влезли в ограничения, это может повлиять на кол-во колонок, а на количеств строк никак не влияет.

      1. Так Вы что, работаете с DBF-файлом не с помощью стандартных средств, предназначенных для работы с ним, а просто как с бинарным файлом физически? Я примерно так как Вы делал со своими неограниченными файлами собственного стандарта. А я бы хотел использовать стандартные команды языка программирования, предназначенные для работы с BDF-файлами

        1. Да именно так. Сожалею, что не сразу друг друга поняли. Попробуйте стандартными средствами добавить в DBF файл около 4 миллионов записей (но чтобы файл не превысил 2Гб), если FoxPro споткнется, значит произошло тоже что и у меня в качестве позиции файла используется Int32, когда я переделал на long то всё пошло. Если же FoxPro нормально переварит этот файл. То дело в размере файла (может быть внутренние ограничения) так как я не вижу что может в заголовке dbf препятствовать большому кол-ву строк и размеру

        2. Только что попробовал добавил 4 500 000 foxpro нормально скушал. Буду разбираться с размером файла

        3. При превышении размера в 2Гб FoxPro пишет Not a Table. Попробую покопаться с заголовком, чтоб он открыл только там копаться и то негде.

    1. Теперь мне понятно Ваше желание использовать формат по максимуму. Попробую ознакомится с Аляской

  19. Добрый день.
    Возник вопрос — можно ли запускать программу из командной строки для автоматического конвертирования DBF в XLS?

    1. Я уже и забыл есть такое или нет. Чуть позже отпишусь, если нет такой возможности то добавлю.

      1. Много можно было еще реализовать, в том числе и XLS->DBF, но теперь времени всё меньше и меньше.

  20. Есть ли возможность корректировать структуру файла и задавать формирование индексных массивов с использованием языка CLIPPER (желательно вообще все функции DBU). Есть ли возможность так скорректировать заголовок dbf-файла, чтобы он был неограниченного размера и с неограниченным числом полей: http://softclipper.net/bazy-dbf/format-fajla-dbf.html

    1. У вас Симантек Антивирус или Nod32? Могу Вас заверить, что вируса там нет.
      Так они определяют «упаковщик», которым упакована программа, для того чтобы скрыть код от чужих глаз. Мои комплексы не позволяли мне выкладывать как есть. Постараюсь решить эту проблему.

  21. Спасибо огромное за программу, перебрал кучу других и только ваша смогла открыть мою dbf от 1С 7.7 ))) размер 2.2 Гб.
    Но есть проблема, после пометки на удаление, сжатие не удаляет записи, они также остаются в файле.

    1. Пожалуйста )
      Сжатие работало и работает исправно, я не сталкивался с таким. Попробуйте описать поподробней ситуацию

  22. Программка просто супер,выручает не в первый раз, оказывает большую помощь в корректировки баз данных. Но столкнулся с такой ситуацией,очень курьезной,постоянно работаю с базами данных, хотелось бы что бы с экспортного файла программы формата «xls» можно было импорт проводить этого файла обратно в dbf…уж очень надо.Спасибо

  23. Очень удобная програмка, респект автору. Вот толко не нашел, может подскажите, — нужно файл dbf например на 60000 строк, разбить на несколько например по 20 к строк ни или меньше. Такое реально? Проблема в том что исходный файл загружается в стстему, и напрмер если в одной строке ошибка, то отменить можно только удалив весь файл. По времени занимает оч много времени. Если было бы несколько файлов, проще было бы)

    1. Спасибо за отзыв ).
      В программе реализовано разбиение файла на части по содержимому какого либо поля. Такая возможность вам подходит? Или нет таких полей в которых записи не уникальны?

  24. Отличная программа. Давно такую искал.
    Можно ли сделать, что при экспорте в xls из командной строки добавлять фильтр сортировки, сгенерированный при ручном экспорте ?
    С уважением, Иван.

    1. Простите, но я Вас не понял. Что значит сгенирированный при ручном экспорте? Реализовать параметр командной строки для экспорта в XLS, отвечающий за сортировку?

      1. Ну да, при экспорте можно создать фильтр сортировки и сохранить в файл. Вот его бы и добавить в командную строку.
        Просто у меня есть очень громоздкая база данных, которая напрямую в Exel не влезает, а в ней много ненужного мусора, вот я и использую фильтр сортировки для избавления от него. Хотелось бы упростить процедуру использованием командной строки.
        С уважением, Иван.

  25. DBFshow 0.106.0.0
    При попытке скопировать что-то из пустой ячейки и вставить эту пустоту из буфера возникает ошибка, а в ячейке оказывается символ «v».

    1. Вы знаете, только что пробовал на разных типах ячеек, что-то не получилось вызвать ошибку. Скиньте, пожалуйста, Ваш файл для анализа. gerztrue_gmail.com

  26. Отличная программа! Огромное спасибо Автору!
    Один вопрос (может быть, я чего-то и сам не увидел?): есть возможность открытия двух (трех, четырех) разных файлов dbf в разных окнах программы (каскадом, рядом и т.д.)?

    1. Спасибо за отзыв! Нет такой возможности нет, никогда не понимал полезности MDI интерфейса. Можно открыть несколько файлов в разных программах и расположить их каскадом 8)

  27. ОГРОМНОЕ спасибо Автору за эту чудесную программу!
    Вот не большие замечания к программе:
    1. Если можно. то добавьте функцию вывода на печать;
    Проблемы в программе:
    2. При объединении двух DBF файлов, от программы Visual FoxPro, размером по 70-90 Мб каждый, а то и больше, некоторые записи (строки) пропадают.
    3. В числовой колонке, которая имеет 2 разряда (колонка называется Prise), отображается только запятая, а не точка, как в исходном файле. Даже если поставить точку, всё равно будет запятая. Сумма значений в этой же колонке отображается не много не верно — отображаются сотые, тысячные и т.д. доли, хотя кроме десятичных там других нету.

    1. Спасибо!
      1. Печать всей таблицы?
      2. Вышлите структуру файлов, которые Вы объединяете.
      3. Отображение запятая или точка, зависит от региональных настроек компьютера.

  28. Спасибо за быстрый ответ.
    1. Иногда печать всей таблицы, если она не большая, а иногда определенного диапазона. Может можно сделать типа как в Excel? Типа печать таких- то колонок (как у Вас сделан экспорт в Excel) и таких-то строк (например печать с 1 по 20 строку).
    2. Структуру файлов постараюсь выслать на следующей неделе, подскажите только как ? Я на «форумах» очень редко бываю.
    3. Спасибо большое за подсказку, я об этом не подумал.
    Ещё раз спасибо за эту чудесную программу. Всех Вам благ.

  29. Ошибка при группировке появляется такое сообщение:

    See the end of this message for details on invoking
    just-in-time (JIT) debugging instead of this dialog box.

    ************** Exception Text **************
    System.FormatException: Input string was not in a correct format.
    at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
    at System.Number.ParseDouble(String value, NumberStyles options, NumberFormatInfo numfmt)
    at System.Double.Parse(String s, NumberStyles style, NumberFormatInfo info)
    at System.Convert.ToDouble(String value)
    at iDBFShow.Helper.DBShow.Group(String columnName)
    at iDBFShow.Form1.группировкаToolStripMenuItem1_Click(Object sender, EventArgs e)
    at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
    at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
    at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
    at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
    at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
    at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
    at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
    at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
    at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    at System.Windows.Forms.Control.WndProc(Message& m)
    at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
    at System.Windows.Forms.ToolStrip.WndProc(Message& m)
    at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
    at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

    ************** Loaded Assemblies **************
    mscorlib
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.7041 (QFE.050727-7000)
    CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
    —————————————-
    iDBFShow
    Assembly Version: 0.111.0.0
    Win32 Version: 0.111.0.0
    CodeBase: file:///D:/PORTABLE%20Program%20Files/DBFShow/DBFShow.exe
    —————————————-
    System.Windows.Forms
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.7015 (QFE.050727-7000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
    —————————————-
    System
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.5740 (QFE.050727-5700)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
    —————————————-
    System.Drawing
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.5740 (QFE.050727-5700)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
    —————————————-

    ************** JIT Debugging **************
    To enable just-in-time (JIT) debugging, the .config file for this
    application or computer (machine.config) must have the
    jitDebugging value set in the system.windows.forms section.
    The application must also be compiled with debugging
    enabled.

    For example:

    When JIT debugging is enabled, any unhandled exception
    will be sent to the JIT debugger registered on the computer
    rather than be handled by this dialog box.

    Что делать — ? Помогите! Переустановка NET.Framework не помогла.

    1. Вышлите, пожалуйста, Ваши файлы, которые Вы объединяете. Я проверю почему может возникать ошибка
      gerztrue#gmail.com

      1. Файл dbf сформирован в foxpro. раньше работал нормально, теперь при группировке выдает такое сообщение. С другими файлами тоже самое. Знаю, что решается созданием нового пользователя и переносом всех данных со старого. Но это не выход. система winXp.

        1. Что-то я недопонял причину ошибки. Если дело в профиле, то это значит проблема с правами к файлу?
          Всё таки хотелось бы глянуть на объединяемые файлы, чтобы проверить или хотя бы их структуру

  30. программа отличная!!!! А если такая возможность в программе разделение столбца FIO на отдельные Fam Imia Otch?

    1. Спасибо! Можно, в принципе, добавить такую возможность, тем более что сам сталкивался с такой необходимостью. Только вот когда время появится не известно (

  31. скажите как убрать иероглифы? открываю фаил а там место адресов и фамилий крогозябры .

  32. Обнаружил ошибку при объединении файлов DBF. Два файла DBF, каждый по 80 МВ, при объединении в один файл получается где-то 98-99 МВ. Пробовал разные файлы и на разных компьютерах и на WinXP и на Win7. Результат один и тот же.

    1. Было бы замечательно, если бы Вы дали бы мне эти файлы. Что бы проверить. Видать программа столкнулась с «некоррекнтыми» для неё данными и заершила процедуру объединения

      1. К сожалению дать эти файлы не могу. Объединение работает через раз, при выполнении операции полоса прогресса доходит до 24% и сбрасывается, если идёт дальше то 100% и вроде всё норм. Взял файл №1 и №2, открыл файл №1 и добавил туда файл №2, в результате 24% и сбрось и не полный DBF. Взял эти же файлы, только добавил в №2 файл №1, в результате 100% вроде всё норм. Брал другие похожие файлы, результат один — собирает через раз.

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

  33. Нашёл в чем ошибка — она произошла ранее. Дело в том, что я собирал из нескольких маленьких файлов один большой, после этого из нескольких больших один ещё больше. Программа сбрасывалась на последнем этапе. Но оказывается на предыдущем этапе сборка была сделана уже с ошибкой — в ячейке так и написано «Ошибка» хотя формат ячейки идёт как «Дата» (дата рождения) система Win7 x64.

  34. Здравствуйте. Возможно ли в программе замена например запятую на точку. Если возможно напишите

  35. Возможно ли удалять дубликаты записей (когда все колонки совпадают) в dbf файле из командной строки (пометить и сжать)?

    1. Пока нет такой возможности. Через месяц планировал вернуться к редактору, добавить некоторые возможности для себя и то, что просили пользователи. Реализую и этот функционал

  36. Отличная программа. есть парочку ляпов: не работает «Структура файлов», при попытке что либо открыть программа выподает крашем + в форме присутствуют стандартные шаблонные наименования «label8». При конвертации из cvs > dbf крашиться кодировка заголовков.
    Есть возможность выложить исходники?

  37. Незаменимое приложение для огромных DBF.
    Обнаружил ошибку при переименовании полей (Изменить формат колонки… или Файл/Структура файла…). При редактировании имен колонок изменяет и длину заголовка — приводит его к минимальному значению (соответственно вся данные летят).

    1. Спасибо за отзыв. Я Вас немного не понял. Имя столбца в dbf формате ограничено же 8 символами. Поэтому и обрезает.
      У Вас dbf с длинными именами столбцов? В какой программе они используются.
      Возможно добавить опцию игнорирования превышения длины 8 символов

  38. Изменяется размер заголовка (9-тый байт заголовка DBF файла).
    Имеется DBF файл с длиной заголовка 130 байт, полученный из Росстата .
    Структура OKPO C(8), OKV16 C(8), P21103 N(20,5) (если создать такой файл в Вашей программе, то заголовок будет длиной 129 байт)
    Исходный:
    0000000000: 03 11 09 19 49 03 00 00 │ 82 00 25 00 00 00 00 00 ♥◄○↓I♥ ‘ %
    0000000010: 00 00 00 00 00 00 00 00 │ 00 00 00 00 00 00 00 00
    0000000020: 4F 4B 50 4F 00 00 00 00 │ 00 00 00 43 00 00 00 00 OKPO C
    0000000030: 08 00 00 00 00 00 00 00 │ 00 00 00 00 00 00 00 00 ◘
    0000000040: 4F 4B 56 31 36 00 00 00 │ 00 00 00 43 00 00 00 00 OKV16 C
    0000000050: 08 00 00 00 00 00 00 00 │ 00 00 00 00 00 00 00 00 ◘
    0000000060: 50 32 31 31 30 33 00 04 │ 5C 1C 00 4E 00 63 0A 00 P21103 ♦\∟ N c◙
    0000000070: 14 05 82 74 38 69 B2 21 │ B9 51 0A 00 82 74 48 69 ¶♣’t8i?!№Q◙ ‘tHi
    0000000080: 0D 00 20 30 30 31 36 31 │ 32 34 36 30 35 2E 31 30 ♪ 0016124605.10

    После переименования поля P21103 в VIRUCHKA:
    0000000000: 03 11 09 19 49 03 00 00 │ 81 00 25 00 00 00 00 00 ♥◄○↓I♥ ? %
    0000000010: 00 00 00 00 00 00 00 00 │ 00 00 00 00 00 00 00 00
    0000000020: 4F 4B 50 4F 00 00 00 00 │ 00 00 00 43 00 00 00 00 OKPO C
    0000000030: 08 00 00 00 00 00 00 00 │ 00 00 00 00 00 00 00 00 ◘
    0000000040: 4F 4B 56 31 36 00 00 00 │ 00 00 00 43 00 00 00 00 OKV16 C
    0000000050: 08 00 00 00 00 00 00 00 │ 00 00 00 00 00 00 00 00 ◘
    0000000060: 56 49 52 55 43 48 4B 41 │ 00 00 00 4E 00 00 00 00 VIRUCHKA N
    0000000070: 14 05 00 00 00 00 00 00 │ 00 00 00 00 00 00 00 00 ¶♣
    0000000080: 0D 00 20 30 30 31 36 31 │ 32 34 36 30 35 2E 31 30 ♪ 0016124605.10
    Т.е. переименование прошло успешно, но одновременно изменился девятый байт заголовка с
    0x82 на 0x81 (те самые 129 байт). Изменилось смещение к данным со всеми вытекающими последствиями.
    При изменении структуры DBF не нужно изменять размер заголовка.

    1. 1) Хочу уточнить: «При изменении структуры DBF не нужно изменять размер заголовка», если нет необходимости обновлять сами записи . Это актуально для огромных DBF т.к. довольно часто приходится давать смысловые названия полям, выгруженным из автоматизированной системы.
      2) Ссылка на скачивание «http://jobtools.ru/wp-content/plugins/download-monitor/download.php?id=1» — не работает!

      1. Спасибо, подправил ссылку. Скоро доберусь до самой программы и исправлю согласно Вашим замечаниям.

  39. Перепробовал с десяток программ , ваша является квинтэссенцией всех плюсов каждой из них.
    Например возможность копировать и вставлять выделенный диапазон значений в рамках одного столбца есть еще только в одной опробованной мною программе , но она платная и кроме этого имеет ряд других существенных недостатков по сравнению с разработанной вами программой.
    Я видимо чего то не до понимаю но почему то когда копирую мышью одновременно несколько ячеек из одного столбца и пытаюсь вставить эти ячейки либо в этот же столбец ниже , либо в другую таблицу с такой же структурой то скопированные ранее ячейки вставляются но с пустыми ячейками между ними . Возможно для этого есть какие то настройки или это пенки конкретной операционной системы , я пробовал на Windows 7 и 8.1 , пенка была в обоих случаях .
    Просьба , подскажите пожалуйста как можно это обойти .

    Еще раз огромное спасибо за Отличную программу !

    1. Спасибо за отзыв!
      Действительно, есть вставка пробела. Буду исправлять, спасибо! Дело в том, что я пользуюсь всегда при копировании и вставке клавиатурой и там всё нормально. До этого момента и не подозревал о проблеме!

    1. Здравствуйте!
      Дело в том, что в Вашем файле в заголовке в поле кодировка стоит 0. Просто зайдите в меню «Разное\Кодировка\» и выберите 866- Russian MS DOS
      Если у Вас такие файлы, то в настройках можно выставить «Использовать кодировку по умолчанию»

      1. Программа полностью игнорирует эти опции и принудительно ставит 1252-Windows ANSI Latin I.

  40. Версия 0.113.0.0
    При редактировании вручную «редактировать заголовок dbf» в разделе «Кодировка страницы» повреждается dbf файл. Так при смене кодировок с DEC 3 на DEC 87 (HEX 57) dbf файл другой программой (DBFNavigator) не читается. Выдает — ошибка структуры dbf файла.
    Также прошу добавить в раздел смены кодировок в раскрывающийся список: вариант кодировки «DEC 87 (HEX 57) — использовать системные настройки ANSI»
    Таблицы кодировки: http://www.autopark.ru/ASBProgrammerGuide/DBFSTRUC.HTM

    1. Не могли бы Вы сбросить пример файла до и после.
      У себя пробовал всё нормально.

    1. Ошибки были исправлены частично, сразу после Ваших обращений, но так и не закончил дело. Теперь уже не помню, что исправил, а что нет. Пройду по новой по замечаниям и доделаю правки.

  41. Частично исправил. Прошу Вас проверить и написать выявленные замечания, недоработки для 114 версии, а то я действительно уже запутался, что исправлял ранее, что нет 8(. К примеру не смог повторить ошибку при переименовании столбца, длина заголовка не меняется.

    1. Замечания:
      1.При изменении в «редактор заголовка dbf «, кодовой страницы — данные сохраняются, но не перечитывается информация в статус баре внизу основного окна.
      2. В разделе кодировка — выпадающий список: увеличить ширину поля, чтоб все строки вмещались.
      3. В разделе кодировка — выпадающий список: при выборе кодировки Current ANSI ничего не меняется, код «DEC 87 (HEX 57) (использовать системные настройки ANSI)» не записывается в заголовок таблицы.

  42. Файл G016.DBF. Длина заголовка 130 байт. При переименовании любого поля длина заголовка становится 129 байт, при данные не сдвигаются!
    Ссылка — https://yadi.sk/d/6OqCdeRL3W7UMA

    1. Принято. Спасибо. Раз 20 на своих файлах пробовал не менялся размер заголовка. Разбираюсь

  43. Здравствуйте!
    А что такое «усечение» файла? Какая логика работы этой операции?

  44. Простите за неграмотность ,неправильно соединял таблицы. Заголовки не выбирал и программа не понимала как схватить.

    Разобрался,спасибо,программа хороша 🙂

  45. Здравствуйте! Отличная программа! Единственное — не совсем понял как работает функция «Удаление дубликатов»… Скажем, если я выбираю все поля, то программа будет удалять только те дубликаты записей, в которых совпадают все поля?

  46. Виталий Александрович, с Новым годом! Прошёл год после моего первого обращения к Вам. Когда же размер заголовка перестанет изменятся при переименовании столбца?

  47. здравствуйте помогите пожалуйста у меня возникла проблема, шрифты отображаются не правильно пробовал изменить кодировку но не получается подскажите пожалуйста что делать

    1. Здравствуйте, чтобы Вам помочь нужно больше информации, хотя бы сриншот программы пришлите, чтобы понять о чем Вы.

  48. Здравствуйте.
    Очень не хватает возможности передвинуть отдельную строчку в файле.
    Перемешать можно, но это действие меняет местами все строчки, а хотелось-бы сдвинуть одну вверх или вниз.

  49. Здравствуйте!
    Программа очень отличная.
    вот только не могу понять как пользоваться объединением?. Существует у меня основная база данных для Флинт содержащая колонки в которые значения подставляются из словаря.
    При слиянии баз нечего не происходит, при выставлении связей показывает значение во второй таблице. Можно автоматизировать процесс выставления связей и выгружать в Excel таблицу в которой будут поставлены значения из связанной таблицы. А также сохранять структуру итих связей для постоянной работы

    1. Здравствуйте,
      Можно только подставить значения в первую таблицу из второй таблицы путем «Сравнения файлов», по связанным полям. Если связь только с одной таблицы, то это быстро, если же больше то dbfshow Вам не подойдет, у вас частный случай для которого нужен отдельный программный комплекс

  50. Здравствуйте, в файлах больше 4 000 записей при удалении последнего столбца в других столбцах в некоторых записях исчезают первые буквы (заменяются пробелом), причем чем больше файл, тем больше таких записей

  51. Имеется файл dbf размером 6920450 байт. В файле заполнено 27030 строк. Необходимо удалить все строки, начиная со второй строки. Выделил указанные строки и решил пометить на удаление. Процесс обработки команды длится уже более полутора часов.
    Сколько времени может занять процесс установки пометок и последующего сжатия файла?

    1. Описанная Вами схема, очень медленна. гораздо быстрее будет воспользоваться следующим режимом: «Правка\Удаление записей», где необходимо ввести диапазон удаляемых записей. Попробуйте, займет секунды, как и последующее сжатие

  52. Доброго времени суток!!
    Премного благодарен за Ваш инструмент работы с дбф .
    Небольшое предложение по модернизации программки, расширить меню фильтра для возможности отбора цифра или буква в строке. Например отличить ИНН код от серии номера паспорта , как например .

  53. Ну или вообще добавить фильтрацию по маске с подстановочными символами .

  54. Что бы не пробовал, но не получается настроить «внятное» отображение записей.
    Одни кракозябры. Я понимаю что проблема не в Вашей программе, а в древности dbf — но может как то можно попробовать декодировать?
    P/S/ даже сюда не дает отображение показать.
    Скрин — https://ibb.co/GMMKZMx

    1. Скиньте лучше сам файл, чтобы можно было Вам попытаться помочь. По картинке похоже на не «правильное» перекодирование между кодировками, когда к нормальному варианту уже не вернуться. В любом случае надо смотреть сам файл

Добавить комментарий для Александр Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *