LinuxForum.Fans
Тема

DBF редактор. Нужна помощь

Автор: voral 5 сообщений 3014 просмотров
#335978

Некоторое время назад подхватил брошенный проект редактора DBF файлов (т.к. нужен был самому). Сейчас редактор нашел своего пользователя и включили в пару дистрибутивов. Соответственно есть и желание его довести "до ума".
сам проект: на GitHub

Как показала практика большинство обходится типами поле С, N, D, L.

Хочется проверить работу с менее распространнеными типами полей. Если есть у кого либо возможность создать файлы с нижеперечисленными пролями (средствами, которым можно доверять) прошу создать и прислать файлы имеющие поля нижеперечисленных типов.
Желательно, чтоб файл имел две строки: пустой поле и заполненное. Если значение поля не в "чеовеко-понятном формате" приложите дополнительно в отдельном файле.
Ну и вообще идеальный случай, если можете создать файл конкретного типа содержащий все соответствующие ему типы полей.



MS VisualFoxPro
B Double
Q Varbinary
V Varchar
W Blob
Y Currency

dBASE IV
F Float

FoxPro
P Picture
T DateTime Текстовый вариант - строка из 14 цифр в формате ГГГГММДДЧЧММСС; пустое значение - 14 пробелов
T DateTime Бинарный вариант - два двойных слова little-endian, т.е. всего 8 байт; первое двойное слово содержит число дней от начала Юлианского календаря (01.01.4713 до нашей эры), второе двойное слово - число миллисекунд от начала суток; пустое значение - 8 нулевых байтов

#335991

А ещё забыли про весьма популярный на территории exUSSR Clipper ;-)

И да, а как же индексы (если редактор). Представляете, в dbf поле, участвующее в структурном индексе, поправите, а в индексе -- нет, вот смеху-то потом будет, по seek/set filter to одно, по locate for (безындексному поиску) -- совсем другое ;-) , прям таки детские грабли во весь рост ;-)

#335992

во-первых у клипера "родной" совсем другой формат.
во-вторых, кто сказал, что я забыл про индексы? ;)
Сейчас, пока, речь идет о совершенно конкретном "участке проекта".

Этот проект был начат румыном. Под конкретные задачи в его бухгалтерской/налоговой кухне. Потом я чуть докрутил, то, что нужно было мне. Потом внедрены некоторые и фишки нужные нынешним реальным пользователям. Есть, конечно, и заказы на функционал. Но есть одна "маленькая" проблема: в коде бардак. Так, что все по порядку. Кстати даже версия еще не 1 ;)


UPDПерепутал клипер с кларионом

#335995

Как же любИм народом "индусский код" (src/dbfeditor.cpp, QDbfEditor::insertRecord()):

text

    if (model->rowCount() == 0)
        emit modelIsEmpty(true);
    else
        emit modelIsEmpty(false);

вместо

text

    emit modelIsEmpty(model->rowCount() == 0);

ps.

"voral⇓" написал:
Но есть одна "маленькая"  проблема: в коде бардак.
угу, предыдущего сообщения не видел, но мнение совпало ;-) На то они и проблемы, чтоб их решать.
pps. А про индексы -- так, на всякий случай, из опыта всяких редакторов.
#336000
bormant написал:
Как же любИм народом "индусский код" (src/dbfeditor.cpp, QDbfEditor::insertRecord()):
text

Ну, это один из самых безобидных примеров в коде :) Та версия, что в гите скорее всего меняться и не будет если только баги всплывут. Чистка идет уже в другом бранче - т.к. рефакторинг будет (уже начат) капитальный.

Войдите или зарегистрируйтесь, чтобы ответить.