#1 04.09.2013 08:16:28

voral
Administrator
Зарегистрирован: 23.02.2010
Сообщений: 1 964
IP-адрес

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

Некоторое время назад подхватил брошенный проект редактора 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 нулевых байтов

#2 04.09.2013 10:57:25

bormant
Administrator
Зарегистрирован: 22.02.2010
Сообщений: 2 265
IP-адрес

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

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

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

#3 04.09.2013 11:16:05

voral
Administrator
Зарегистрирован: 23.02.2010
Сообщений: 1 964
IP-адрес

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

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

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


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

#4 04.09.2013 11:28:34

bormant
Administrator
Зарегистрирован: 22.02.2010
Сообщений: 2 265
IP-адрес

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

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


    if (model->rowCount() == 0)
        emit modelIsEmpty(true);
    else
        emit modelIsEmpty(false);
вместо

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



ps.
Quote by voral⇓
Но есть одна "маленькая"  проблема: в коде бардак.
угу, предыдущего сообщения не видел, но мнение совпало ;-) На то они и проблемы, чтоб их решать.
pps. А про индексы -- так, на всякий случай, из опыта всяких редакторов.

#5 04.09.2013 11:44:57

voral
Administrator
Зарегистрирован: 23.02.2010
Сообщений: 1 964
IP-адрес

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

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



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

Board footer