Форум сайта python.su
Проблема в следующем нужно работать с файлами dbf(clipper) стандартные файлы dbf - это dbaseIII, хотя в разных библиотеках по разному.
Перепробовал 3 разных библиотеки dbf, dbfpy, ydbf, других просто не знаю.
Имеется несколько файлов *.dbf с одинаковыми полями, нужно обработать некоторые текстовые поля и скопировать все записи в один файл.
Проблема: при создание строкового поля длинной больше 254 возникает ошибка у всех библиотек - это ограничение dbaseIII, а в clipper это поле может быть до 32к.
у библиотеки dbf также возникает ошибка при создании поля N(1,0), а N(2,0) уже создается
Убился с этим вопросом, потратил уже несколько дней, все читает все работает кроме вышеупомянутых проблем(поля проблемные удаляешь и все работает)
P.S. Красивое описание структуры DBF http://www.delphikingdom.com/asp/viewitem.asp?catalogid=624#Table4
Но к сожалению оно не до конца правильно, поле 16-17 это - “Размер поля” для строкового поля
Структуру смотрю и редактирую dbf программой DbfNavigator
если надо пример http://narod.ru/disk/17579580000/input.rar.html - 2 файлика dbf
P.P.S. Больше всех понравилась библиотека DBF
Отредактировано (Фев. 4, 2010 15:38:25)
Офлайн
ты хочешь что то вроде такого ?
Офлайн
2 sypper-pit
Нет, надо сохранять в том же формате(dbf) и проблема состоит что ни одна библиотека этого не позволяет(стопорится на строковом поле длинной больше 254)
Офлайн
Попробуй подключи ДЛЛ файл из Cheetah Database System. Это библиотека для работы с дбф файлами.
http://cheetahdatabase.sourceforge.net/
Офлайн
2SAnty: Это не совсем то, а точнее совсем не то, я хотел бы работать с питоновской библиотекой
Эээээх….
Пришлось лезть в исходники и доделывать под себя, выбрал модуль DBF, если кому интересно могу скинуть
При ковырянии нашел еще одну траблу - библиотеки dbf, dbfpy не добавляют в конец файла символ окончания файла ‘\x1a’, приходиться добавлять отдельно.
После доработок стало нормально работать в моих условиях, только что не проверял создание новых файлов, есть подозрение что с проблемными полями файл криво создастся.
Офлайн
1viktorЛучше отошлите патч автору библиотеки.
Пришлось лезть в исходники и доделывать под себя, выбрал модуль DBF, если кому интересно могу скинуть
Офлайн