LookDBF

Здесь можно обсудить ваш любимый плагин.
buniak_a_h
Posts: 259
Joined: Sat 20 Apr, 2013 00:17
Location: Питер
Has thanked: 32 times
Been thanked: 4 times
Contact:

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

Post by buniak_a_h » Wed 15 Jun, 2016 22:07

Latest post of the previous page:

Да. Иначе я бы не откатился...
Вы попробовали? Повторяется?
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

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

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

Post by Vertigo » Wed 15 Jun, 2016 23:19

Я в отпуске до конца июня, как я уже писал.

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

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

Post by buniak_a_h » Wed 15 Jun, 2016 23:22

Ну, Вы замечания коллекционируйте. :-) Отдыхайте, не срочно.
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

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

LookDBF

Post by buniak_a_h » Mon 04 Jul, 2016 10:12

Vertigo wrote:Я в отпуске до конца июня, как я уже писал.
С возвращением! А?
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

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

LookDBF

Post by Vertigo » Mon 04 Jul, 2016 10:56

buniak_a_h wrote:Попробуйте открыть файл из вложения OSTAMPLT.RAR и "прошагать" вправо. Указатель дойдёт до поля DATBEGDOC (да то то не всё видно), после чего курсор уходит за пределы экрана.
При "возврате" стрелкой влево выделенная область не стыкуется с границами поля (см. картинку)
При дальнейшем движении влево курсор, видимо, опять уходит за пределы экрана; скроллинг влево не происходит.
Скажем так...
На x64 у меня всё корректно работает.
В x86 действительно наблюдаются нестыковки, но другого рода. Однако, у меня размер окна такой, что это поле изначально видно (и как раз последнее видимое). Так вот, при движении вправо стрелкой курсор упирается в это поле и дальше просто не движется. Но по нажатию кнопки End всё скроллится до конца, после чего стрелкой влево корректно прокручивается в начало.

Что у Вас там стоит? XP? Какой размер окна? Какая версия ФАРа?

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

LookDBF

Post by buniak_a_h » Mon 04 Jul, 2016 15:07

Vertigo wrote: Что у Вас там стоит? XP? Какой размер окна? Какая версия ФАРа?
XP Sp3.
Окно 80х27 (знакомест). Фар с тех пор поменялся, есессно (обновляю регулярно). Сейчас = 3.0.4732
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

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

LookDBF

Post by buniak_a_h » Thu 07 Jul, 2016 19:29

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

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

LookDBF

Post by buniak_a_h » Thu 07 Jul, 2016 19:43

Vertigo
Если настроить ширину окна на 106 знакомест - всё работает. Распахнутое на весь экран - как раз 106 символов - работает. При перестройке даже на 105 символов работать перестаёт.
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

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

LookDBF

Post by Vertigo » Fri 08 Jul, 2016 12:06

Да верю я. Писал же, что у меня тоже есть странности. Там какие-то эксепшены сыпятся на дебажной сборке. Дальше ещё не смотрел, т.к. правлю в порядке поступления, т.е. поля больше 255 (считаю это более приоритетным и критичным, т.к. связано с потенциальной потерей данных).
Ну, а окошко можно пока и расширить. ;-)

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

LookDBF

Post by buniak_a_h » Sat 16 Jul, 2016 01:37

Vertigo
Одна ошибочка у меня ушла (та, что с горизонтальной навигацией). Решение было простое:
модуль LookDBF.cpp,
процедура WORD LOOK::GoRight(void).
В первой строке определены переменные short x, w; Переменная w не определена в начале, проблема ушла после замены указанной строки на short x, w=0;
На самом деле у меня Visual Studio 2010, у Вас явно более поздняя. Я незнаком с этой средой, возможно, ошибка пропала по другой причине (пока "адаптировал" Ваш проект под 2010, менял многое мне неизвестное). Было бы кузяво, если б Вы внесли это исправление у себя, пересобрали DLL, а я бы проверил.
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

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

LookDBF

Post by buniak_a_h » Sun 17 Jul, 2016 00:29

Vertigo
Не знаю, на какой стадии Ваши переделки. На всякий случай присылаю испорч исправленные исходники. Результат, на котором я остановился:
  1. Исправлена ошибка, приводившая к некорректному горизонтальному скроллу по полям. Возможно, (а) не всегда проявлялась и (б) не на всех версиях Windows, т.к. причиной было отсутствие инициализации переменной, а там могло быть и правильное значение.
  2. Просмотр БД с полями до 32767 (теоретически) возможен. Проверено на 1000-символьном поле.
  3. Также реализован поиск в длинных строках (проверено на поиске в позиции 560 длинного поля).
  4. Для редактирования осталось ограничение в 512 байт. Это - следствие структуры FarDialogItem. Насколько я понял, это - внутренняя структура ФАРа; т.е. ограничение самого менеджера
Если ограничение в 512 (char[512] FarDialogItem.Data) победить напрямую не удастся, то предлагаю два варианта обхода проблемы:
(а) редактировать строки длиннее 512 символов в отдельном редакторе (аналогично MEMO-полям)
(б) тупо отказываться от редактирования таких полей. Это всё же лучше, чем потеря данных.
На всякий случай шлю Вам исходники. У меня Visual Studio 2010 (более поздняя не ставится на XP), так что возможны некоторые "особенности", связанные с этим фактом.
Все мои изменения помечены // BAX, <дата>
LookDBF.Sources.rar
Только исходники (*.cpp,*.hpp,*.h,*.rc и *.def)
(66.08 KiB) Downloaded 15 times
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

Shmuel
Posts: 5041
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 133 times

LookDBF

Post by Shmuel » Sun 17 Jul, 2016 01:22

buniak_a_h wrote: Для редактирования осталось ограничение в 512 байт. Это - следствие структуры FarDialogItem. Насколько я понял, это - внутренняя структура ФАРа; т.е. ограничение самого менеджера
В структуре FarDialogItem нет такого ограничения, разве что сам плагин установил поле MaxLength в 512.

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

LookDBF

Post by buniak_a_h » Sun 17 Jul, 2016 09:29

Shmuel wrote: В структуре FarDialogItem нет такого ограничения, разве что сам плагин установил поле MaxLength в 512.
В плугине какая-то совершенно другая структура FarDialogItem; там нет полей MaxLength, UserData и Reserved. На месте поля Data - union, максимальный размер - в char Data[512]. При попытке изменить 512 на 32767 зависание происходит в процедуре extern PluginStartupInfo Info.DialogEx. Я не писал на C++ уже лет 20, на Visual Studio - никогда. Но мне кажется, что этот завис где-то ВНЕ плугина.
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

User avatar
zg
zero-gravity
Posts: 5231
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 42 times
Contact:

LookDBF

Post by zg » Sun 17 Jul, 2016 09:31

Shmuel wrote:В структуре FarDialogItem нет такого ограничения, разве что сам плагин установил поле MaxLength в 512.
плагин под первую версию.

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

LookDBF

Post by Vertigo » Mon 18 Jul, 2016 13:39

buniak_a_h wrote:Одна ошибочка у меня ушла (та, что с горизонтальной навигацией). Решение было простое:
Это, а также по соседству в GoLast я поправил. Правда, во втором случае остался-таки косяк, когда последняя колонка отображается на экране не полностью. Я пока не понимаю, что там хотел сказать оригинальный автор в коде. Но хотя бы падать не должно.

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

LookDBF

Post by Vertigo » Mon 18 Jul, 2016 13:43

buniak_a_h wrote: Если ограничение в 512 (char[512] FarDialogItem.Data) победить напрямую не удастся, то предлагаю два варианта обхода проблемы:
Думаю, ограничение победить не удастся. Поэтому, придётся всё же подумать о портировании под Far3. Впрочем, вариант (а) мне в любом случае нравится, а (б) можно как временную затычку.
Last edited by HaRT on Mon 18 Jul, 2016 14:04, edited 1 time in total.
Reason: Исправлено цитирование

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

LookDBF

Post by buniak_a_h » Mon 18 Jul, 2016 14:30

Vertigo wrote: Думаю, ограничение победить не удастся
Как выяснилось, это - ограничение для Far-1. Если перейти на интерфейс Far-3, то ограничение уйдёт. Но!
  1. Тогда плугин перестанет работать под первым ФАРом
  2. На самом деле мне тоже вариант (а) нравится. Не только универсальностью, но и удобством: очень длинные поля реально удобнее править в обычном редакторе (можно использовать идею WordWrap-а: запоминать позиции, куда вставляется \n и перед сохранением удалять. Также переформатировать при изменении размера консоли).
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании

Post Reply

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

Who is online

Users browsing this forum: No registered users and 7 guests