LookDBF

Здесь можно обсудить ваш любимый плагин.
User avatar
Vertigo
Posts: 61
Joined: Tue 13 Apr, 2010 12:04
Location: Moscow, Russia
Has thanked: 7 times
Been thanked: 2 times

Работа с DBF-файлами: DBFView, ViewDBF, LookDBF

Post by Vertigo » Fri 15 Apr, 2016 12:35

Latest post of the previous page:

sandrey wrote:Добавьте возможность выполнения SQL команд
А это как? Научите?

User avatar
HaRT
Moderator
Posts: 8051
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 67 times
Been thanked: 100 times

Работа с DBF-файлами: DBFView, ViewDBF, LookDBF

Post by HaRT » Fri 15 Apr, 2016 13:37

Vertigo wrote: А это как? Научите?
dBase ODBC, ODBC SQL. Не?
Фар есть инструмент, а не нянька. © 2009 DrKnS

buniak_a_h
Posts: 313
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 34 times
Been thanked: 4 times
Contact:

Работа с DBF-файлами: DBFView, ViewDBF, LookDBF

Post by buniak_a_h » Thu 09 Jun, 2016 23:36

Плугин LookDBF не работает с символьными полями длиной более 255 символов. Указывает "дробную" длину поля. (см. картинку)
Image
Здесь ширина поля QQQ на самом деле 1000 символов.
Пример БД
ZZZ.DBF.rar
(157 Bytes) Downloaded 23 times
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

User avatar
Vertigo
Posts: 61
Joined: Tue 13 Apr, 2010 12:04
Location: Moscow, Russia
Has thanked: 7 times
Been thanked: 2 times

Работа с DBF-файлами: DBFView, ViewDBF, LookDBF

Post by Vertigo » Fri 10 Jun, 2016 08:06

Спасибо за репорт и особенно за сэмпл. Обязательно посмотрю, в чём дело, хотя и не обещаю, что скоро, т.к. отпуск на носу.

Впрочем, оригинальный автор во многих местах там наивно предполагал, что 256 байт "будет достаточно для всех".

А проблема только в неправильном отображении в этом диалоге, или плагин действительно ещё как-то не работает с такими полями?

ObSerV
Posts: 53
Joined: Wed 29 Jul, 2009 06:26
Been thanked: 1 time

Работа с DBF-файлами: DBFView, ViewDBF, LookDBF

Post by ObSerV » Fri 10 Jun, 2016 09:58

Vertigo wrote:Впрочем, оригинальный автор во многих местах там наивно предполагал, что 256 байт "будет достаточно для всех".
Кхм. Насколько я помню так полагал формат именно dbf-файла.

User avatar
Vertigo
Posts: 61
Joined: Tue 13 Apr, 2010 12:04
Location: Moscow, Russia
Has thanked: 7 times
Been thanked: 2 times

Работа с DBF-файлами: DBFView, ViewDBF, LookDBF

Post by Vertigo » Fri 10 Jun, 2016 10:05

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

buniak_a_h
Posts: 313
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 34 times
Been thanked: 4 times
Contact:

Работа с DBF-файлами: DBFView, ViewDBF, LookDBF

Post by buniak_a_h » Fri 10 Jun, 2016 13:01

Vertigo wrote: Обязательно посмотрю, в чём дело.
В хедере dbf для числового поля указывается байт для LEN и байт для DEC; для символьного поля надо пересчитывать:
LEN=LEN + 256*DEC;
DEC=0
Vertigo wrote: А проблема только в неправильном отображении в этом диалоге, или плагин действительно ещё как-то не работает с такими полями?
Не работает (ограниченно работает - до 255 символов показывает).
ObSerV wrote: Насколько я помню так полагал формат именно dbf-файла.
Это - в стандарте dBASE-II. В dBASE-III и в FoxPro ограничение было снято.
Vertigo wrote: не обещаю, что скоро
Соображения основаны на исходниках версии 2.06... Попробуйте^
  • (а) в описании структуры dbField указать вместо BYTE filen; - WORD filen;
    (б) в реализации функции dbBase::AddF предусмотреть пересчёт d->filen и d->dec для символьных полей, как указано наверху поста.
    (в) про отображение на экране ФАРа сказать ничего не могу. Возможно, и этого хватит...
Last edited by buniak_a_h on Fri 10 Jun, 2016 13:10, edited 1 time in total.
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

buniak_a_h
Posts: 313
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 34 times
Been thanked: 4 times
Contact:

Работа с DBF-файлами: DBFView, ViewDBF, LookDBF

Post by buniak_a_h » Fri 10 Jun, 2016 13:06

Vertigo
ЗЫ.
Я, естественно, не написал про согласование типов аргументов функций.
НО! Я (как самый ленивый программист в мире) тупо по всему тексту заменил бы BYTE на WORD. Не та ситуация, чтоб байтики экономить.
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

ObSerV
Posts: 53
Joined: Wed 29 Jul, 2009 06:26
Been thanked: 1 time

Работа с DBF-файлами: DBFView, ViewDBF, LookDBF

Post by ObSerV » Fri 10 Jun, 2016 15:01

buniak_a_h wrote:
Vertigo wrote:
ObSerV wrote: Насколько я помню так полагал формат именно dbf-файла.
Это - в стандарте dBASE-II. В dBASE-III и в FoxPro ограничение было снято.
Таблица 4.6, Типы полей Visual FoxPro
Текстовый Character, Character(binary) Текстовые поля могут содержать буквы, цифры и специальные символы. Максимальная ширина поля составляет 254 символа. тип Character (binary) используется в том случае, если не требуется учитывать кодовую страницу отображаемых данных

И это Вижуал 9 - уточните, пожалуйста, когда было снято ограничение?

User avatar
Vertigo
Posts: 61
Joined: Tue 13 Apr, 2010 12:04
Location: Moscow, Russia
Has thanked: 7 times
Been thanked: 2 times

Работа с DBF-файлами: DBFView, ViewDBF, LookDBF

Post by Vertigo » Fri 10 Jun, 2016 15:02

buniak_a_h, спасибо за подсказки.

Исходники, кстати, доступны на GitHub, и пулл-реквесты никто не отменял. ;-)

buniak_a_h
Posts: 313
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 34 times
Been thanked: 4 times
Contact:

Работа с DBF-файлами: DBFView, ViewDBF, LookDBF

Post by buniak_a_h » Fri 10 Jun, 2016 15:14

ObSerV wrote: И это Вижуал 9 - уточните, пожалуйста, когда было снято ограничение?
Я не знаю, что такое Вижуал 9, но
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

buniak_a_h
Posts: 313
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 34 times
Been thanked: 4 times
Contact:

Работа с DBF-файлами: DBFView, ViewDBF, LookDBF

Post by buniak_a_h » Fri 10 Jun, 2016 15:21

Vertigo wrote: Исходники, кстати, доступны на GitHub, и пулл-реквесты никто не отменял.
Спасибо. А то у меня уже, к сожалению, нет Borland С++ , а как я понял, те исходники, что у меня есть, именно на BC 6.0 рассчитаны. Вы на VC++ перевели? Это мудро.
А не подскажете, как оттуда что-либо скачать? Не нашёл download
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

buniak_a_h
Posts: 313
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 34 times
Been thanked: 4 times
Contact:

Работа с DBF-файлами: DBFView, ViewDBF, LookDBF

Post by buniak_a_h » Fri 10 Jun, 2016 15:35

Vertigo
А что такое пулл-реквесты? Запросы какие-то... Переводчик лажает :-(
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

User avatar
Vertigo
Posts: 61
Joined: Tue 13 Apr, 2010 12:04
Location: Moscow, Russia
Has thanked: 7 times
Been thanked: 2 times

Работа с DBF-файлами: DBFView, ViewDBF, LookDBF

Post by Vertigo » Fri 10 Jun, 2016 15:56

Ммм... вы с Git никогда не работали? Тогда сложно будет объяснить. Если вкратце, то это такая разновидность совместной разработки. Делается собственный fork репозитория (прямо там, на гитхабе), в нём вносятся изменения, а потом отправляется "запрос на слияние" в оригинальный репозиторий.

Download там, кстати, есть где-то. Но это самый крайний случай. Правильно взять Git и склонировать репозиторий.

User avatar
Vertigo
Posts: 61
Joined: Tue 13 Apr, 2010 12:04
Location: Moscow, Russia
Has thanked: 7 times
Been thanked: 2 times

Работа с DBF-файлами: DBFView, ViewDBF, LookDBF

Post by Vertigo » Fri 10 Jun, 2016 15:57

Зелёная кнопка Clone or download.

buniak_a_h
Posts: 313
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 34 times
Been thanked: 4 times
Contact:

Работа с DBF-файлами: DBFView, ViewDBF, LookDBF

Post by buniak_a_h » Fri 10 Jun, 2016 16:11

Vertigo wrote:Зелёная кнопка Clone or download.
Спасибо.
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

ObSerV
Posts: 53
Joined: Wed 29 Jul, 2009 06:26
Been thanked: 1 time

Работа с DBF-файлами: DBFView, ViewDBF, LookDBF

Post by ObSerV » Fri 10 Jun, 2016 17:18

buniak_a_h wrote: Я не знаю, что такое Вижуал 9, но
По Факту вы работали с базами как кто? Как пользователь?
Visual FoxPro 9 (под windows) последняя версия фокса - больше не бывает.
Если бы вы работали как программист, то помнили бы разницу между мемо полем и строковым, и не вводили людей в заблуждение.

Post Reply

Return to “Обсуждение плагинов”