Vertigo, вроде нашёл критическую ошибку. Прилагаемую БД плагин считает пустой; на самом деле в ней 330 записей. Возможно, у меня устаревшая версия, к тому же немного изменённая (для поиска поля и для просмотра длинных полей в виде мемо). Изменения я Вам присылал, но в то время в версию они не вошли (а жаль).
Сообщение на всякий случай продублировал в личку... Извините, если что.
LookDBF
Posted: Fri 21 Apr, 2017 17:23
by Vertigo
У меня тоже говорит, что пустой. Посмотрю, как будет время.
LookDBF
Posted: Fri 21 Apr, 2017 21:34
by buniak_a_h
Vertigo!
Мне тут сказали, что какой-то софт вообще не открывает - ругается, что что-то-там неправильно.
На самом деле исправляется заменой 2-х байтов (4-го и 5-го). По-моему это как раз количество записей. В исходном (некорректном) - 00,00. Надо 4A, 01 (0x014A=330) . Уж не знаю, чем делался файл. НО! BRO.exe открывает нормально. Пересчитывает по размеру хедера, записи и файла, что ли?... Так что ею можно исправить.
Уж не знаю, стоит ли париться, если какой-то некорректный софт некорректно заполняет хедер... Хотя при наличии времени я бы исправил. Ну, раз можно посчитать...
LookDBF
Posted: Fri 21 Apr, 2017 21:50
by Vertigo
Дык, в том-то и дело, что это не исправление, а костыль. Заголовок-то вроде правильный, получается.
Я, конечно, за то, чтобы всё всегда и везде работало, но мы даже не знаем наверняка, ошибка ли это, и как часто она может возникнуть.
И к тому же, мало ли какой мусор возможен в конце файла. Пример - chkdsk; часто информация о размере оригинального файла теряется, и после восстановления в конце оказывается мусор.
LookDBF
Posted: Fri 21 Apr, 2017 21:53
by Vertigo
Кстати, а может, это такая оптимизация в кавычках? Всё удалили, а софт просто записал 0 в заголовок? Бред, но возможно же. facepalm2
LookDBF
Posted: Fri 21 Apr, 2017 22:13
by buniak_a_h
Vertigo wrote: в конце оказывается мусор
Ну, можно потом удалить. Лучше мусор, чем потеря данных. Мне каэцца...
Vertigo wrote: Кстати, а может, это такая оптимизация в кавычках? Всё удалили, а софт просто записал 0 в заголовок?
Не, не этот случай. Поздно уже, а то я бы спросил у автора, чем получен файл. Но что она не удаляла все записи - точно.
Кстати, о корректности хедера. Плагин при редактировании не меняет в нём дату последнего редактирования (то, что в XBase возвращает функция LUPDATE()). Мелочь, конечно... На самом деле даже удобно. Но... Некорректно
Можно ли просматривать файл с сервера(NetBox) плагином(LookDBF)?
Posted: Fri 09 Apr, 2021 11:18
by Романов Юрий
Доброго времени суток.
Подскажите пожалуйста.
Можно ли просматривать файл с сервера(NetBox) плагином(LookDBF)?
Посмотреть встроенным редактором можно:
на локальной файловой системе создаётся копия, временный файл, который открывается встроенным редактором.
Можно ли тоже самой, но открывать плагином, например LookDBF?
Спасибо.
Можно ли просматривать файл с сервера(NetBox) плагином(LookDBF)?
Posted: Fri 09 Apr, 2021 11:29
by 2useven10
Попробовать не проще чем спросить?
У любого плагина есть возможность делать как Viewer.
Судя по коду (смотрел по диагонали) LookDBF этого не умеет.
Можно ли просматривать файл с сервера(NetBox) плагином(LookDBF)?
Posted: Fri 09 Apr, 2021 12:49
by Романов Юрий
2useven10 wrote: ↑Fri 09 Apr, 2021 11:29
Попробовать не проще чем спросить?
Пробовал: локальный файл открывает.
Я не нашел как объяснить Far-у скачать файл и открыть его плагином.
Можно ли просматривать файл с сервера(NetBox) плагином(LookDBF)?
Posted: Fri 09 Apr, 2021 12:54
by Mazzi
Романов Юрий wrote: ↑Fri 09 Apr, 2021 11:18
открывать плагином, например LookDBF
на 99% нет, т.к. плагин даже не умеет работать с локальными DBF в архиве
Романов Юрий wrote: ↑Fri 09 Apr, 2021 12:49
Я не нашел как объяснить Far-у скачать файл и открыть его плагином.
писать макрос, скачивающий файл куда-то локально, а потом вызывать lookDBF, передавая ему скачанный на предыдущем шаге файл
Можно ли просматривать файл с сервера(NetBox) плагином(LookDBF)?
Posted: Fri 09 Apr, 2021 12:55
by 2useven10
Это должен делать сам плагин.
Но LookDBF, видимо, не может открыть файл из панели другого плагина, только реальные файлы.
LookDBF
Posted: Fri 09 Apr, 2021 15:10
by Романов Юрий
2useven10 wrote: ↑Fri 09 Apr, 2021 12:55
Это должен делать сам плагин.
Т.е. каждый плагин просмотра должен сам уметь скачивать и показывать.
А то, что эта функциональность уже реализована и её просто нужно использовать, вот только как?
Зря тему сюда перебросили, LookDBF взят только для примера, задача общая.
LookDBF
Posted: Fri 09 Apr, 2021 15:31
by buniak_a_h
Романов Юрий wrote: ↑Fri 09 Apr, 2021 15:10
каждый плагин просмотра должен сам уметь скачивать и показывать
Видимо, каждый плагин должен уметь запросить файл у плагина, которому принадлежит панель. Возможно, это - функция export.GetFiles. И да, действительно, это может быть не только плагин LookDBF. Такая функциональность будет полезна для просмотра DBF-файлов в архивах (ArcLite), на ISO- и vmWare-дисках (Observer) и т.п. . И, конечно же, лучше, если такой запрос будет выдавать сам плагин LookDBF. Или сам LookHTML (условно). Или что там мы ещё умеем просматривать. Т.е. такой функционал надо встраивать в любой плагин, который умеет работать с файлами. Но, боюсь, это нереально. Макросом решить реальнее.
Я когда-то сделал макрос, выполняющий для файлов из плагина функции, заданные нативным сервисом CtrlG
LookDBF
Posted: Fri 09 Apr, 2021 16:31
by 2useven10
Насколько я понимаю (могу и ошибаться) всё зависит от способа открытия файла который реализован в плагине.
Если через меню плагинов (F11 ...) - плагин должен сам получать файл, GetFiles() подходит, ~40 строчек кода.
Если в плагине реализовано открытие через Analize() то вроде бы сам фар получает файл, чтобы было что анализировать.
Ни того ни другого сабжевый плагин не делает.
LookDBF
Posted: Fri 09 Apr, 2021 16:32
by John Doe
Сколько теоретиков..
Создаю ассоциацию на *.dbf: lookdbf:"!\!.!" (например на F3).
Из архива жму F3 на нужном файле. Открывает.
LookDBF
Posted: Fri 09 Apr, 2021 16:47
by 2useven10
John Doe wrote: ↑Fri 09 Apr, 2021 16:32
Создаю ассоциацию на *.dbf - F3
Нечестно... но да, сработатет. А вот на Enter не думаю (опять же теоретизирую).