Ассоциация ЭБНИТ    ИРБИС-корпорация    Вики-Ирбис    Online/CHM справка Ирбис   
Опыт и разработки пользователей ИРБИС :  ИРБИС Irbis
 
Страницы: <<12
Страница: 2 из 2
Re: АБИС ИРБИС + Delphi помогите разобраться
Пользователь: S-presso (IP-адрес скрыт)
Дата: 10, October, 2013 14:29

Цитата:
Разбирая работу функции function IC_reg (первой!) пришел к выводу, что написать свой модуль, который бы подключался к серверу - невозможно! Так ли это?

Ну почему же, просто надо использовать значения ServerIP и ServerPort из секции MAIN файла Cirbisc.ini, и можно подключиться по user_name = 1 и password = 1 (подключиться с моим логином Каталогизатора мне не удалось).

Re: АБИС ИРБИС + Delphi помогите разобраться
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 10, October, 2013 14:37

А какой char в переменной АРМа использовать? Может это первой символ в названии ini-файлика?

Re: АБИС ИРБИС + Delphi помогите разобраться
Пользователь: S-presso (IP-адрес скрыт)
Дата: 10, October, 2013 15:02

Да, я использовал константу IRBIS_CATALOG в качестве значения arm (ей соответствует 'C'). Все значения констант прописаны в файле IRBIS64_CLIENT.PAS:

{коды АРМов}
IRBIS_READER = 'R';
IRBIS_ADMINISTRATOR = 'A';
IRBIS_CATALOG = 'C';
IRBIS_COMPLECT = 'M';
IRBIS_BOOKLAND = 'B';
IRBIS_BOOKPROVD = 'K';

Re: АБИС ИРБИС + Delphi помогите разобраться
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 10, October, 2013 15:23

Файлика IRBIS64_CLIENT.PAS нет ни в одной папки дистрибутива. Где можно с ним ознакомиться?

Re: АБИС ИРБИС + Delphi помогите разобраться
Пользователь: S-presso (IP-адрес скрыт)
Дата: 10, October, 2013 15:53

Вот здесь два демо примера от Александра Иосифовича по созданию собственного модуля для ИРБИС64 в Delphi. Там же есть и интерфейсный файл IRBIS64_CLIENT.PAS.

Вложения: temp.rar (144.7KB)   temp2.rar (178.6KB)  
Re: АБИС ИРБИС + Delphi помогите разобраться
Пользователь: S-presso (IP-адрес скрыт)
Дата: 11, October, 2013 07:49

Цитата:
woodyfon
Есть одна задумка - хочется реализовать. Думаю, ускорит и упростит ввод библиографических данных.

Интересно, а эта идея имеет какое-либо отношение к тому, о чём Вы ранее писали в другой теме:

Цитата:
Как по мне, была бы интересна идея вводить библиографические данные мышкой, а не с клавиатуры. Например, выбрали мышкой кнопку "Заглавие" на отсканированном титульном листе и обороте обвели область. Далее через средства OCR текст представлен согласно формату и тулиться в ячейку заглавия. После ввода всех необходимых данных каталогизатор проверяет/редактирует, если требуется, подготовленные данные и отправляет их в каталог.

Цитата:
Выбрали нужную область БО. Нажали на левую кнопку мышки, начали обводить прямоугольником область БО. В момент отпускания мышки - текстовые данные занесены в промежуточную ячейку и так далее. Согласен, что технология не использует возможность заимствования. Но ее вполне можно применить для ввода того же оглавления или аннотации. Подобным способом работает ABBYY Screen Reader.

Я реализовал подобную вещь (правда, пока без OCR) в своём проекте библиографического редактора (или библиоредактора - (c) А. Лавринович), о чём вкратце упоминал в докладе для Крымской конференции на тему "Применение OCR в технологии каталогизации на примере разработки специализированного программного модуля для ИРБИС64" - см. [gpntb.ru]. Сейчас иногда применяю в работе, если встречаю нестандартно оформленное библиографическое описание (при отсутствии издания в БД Ирбис-корпорации).

Re: АБИС ИРБИС + Delphi помогите разобраться
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 11, October, 2013 10:43

Да, это именно та идея, про которую я упоминал ранее. Патентовать что-ли grinning smiley Типа, "Мышинный ввод бибиографических данных". Но подсоединять технологию OCR точно не буду, так как проект точно должен стать платным :). Хочу ограничиться обработкой обычного текста с некоторыми фильтрами (латинница+кириллица, удаление двойных пробелов, преобразование заглавных букв в строчные, удаление лишних пробелов). Не говорю также о шаблонах, применимых к исходному тексту.
Набор библиографических данных вместе шаблоном с рабочим листом.
+
Поделитесь, пожалуйста, сведениями, как вы выносите РЛ на форму?



Редактировано 1 раз. Последний раз 11.10.2013 10:45 пользователем woodyfon.

Re: АБИС ИРБИС + Delphi помогите разобраться
Пользователь: S-presso (IP-адрес скрыт)
Дата: 11, October, 2013 13:39

woodyfon
Отправил Вам в личном сообщении исходники последней версии моего АРМа. Если задумаете его скомпилировать, в файле проекта CIRBIS64_CLIENT.bpr перечисляются все нужные (а также некоторые ненужные) библиотеки, которые надо будет найти (они образуют несколько наборов компонентов VCL, при желании я могу их перечислить). Но вообще построить данный проект - дело не из лёгкихsmiling smiley. Легче просто подсмотреть, где нужно, код и сделать всё по-своему.

Относительно рабочих листов. Смотрите код функции GetFieldsInfo из модуля DBAccess и обращающейся к ней функции FillFieldInfo, которая заполняет таблицы рабочих листов данными. Также для вызова таблицы подполей используется функция GetSubfieldsInfo, которую в свою очередь вызывает модуль Adv.cpp для заполнения своей формы AdvEntryForm, вызываемой в обработчике события TCmainForm::WSTVFieldStringGridEllipsClick (сделано, как в АРМ Каталогизатор).

Re: АБИС ИРБИС + Delphi помогите разобраться
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 11, October, 2013 20:06

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



Редактировано 1 раз. Последний раз 11.10.2013 22:40 пользователем woodyfon.

Re: АБИС ИРБИС + Delphi помогите разобраться
Пользователь: S-presso (IP-адрес скрыт)
Дата: 11, October, 2013 20:45

Цитата:
Жаль, что выбрали слишком зависимую среду разработки от других библиотек.

Ну, по сути там важны только два набора компонентов - TMS Component Pack (в самом АРМе) и LMD Tools (в библиоредакторе). Причём вместо первого можно выбрать в принципе любой табличный компонент, просто мне хотелось, чтобы в строки таблицы можно было добавлять кнопки (как в Каталогизаторе - для раскрытия таблицы подполей) и выпадающие списки (это уже для дополнительной обработки элементов оглавления - например, переноса инициалов авторов в конец строки, перевода заглавных букв в строчные и т.д.). И ещё - таблица должна поддерживать виртуальный режим, в котором данные загружаются по мере необходимости, иначе пришлось бы слишком долго ждать, пока загрузятся все записи из базы данных. А из всего набора LMD Tools у меня используются только выпадающие списки с чекбоксами (опять же для пост-обработки элементов бибописания) и гиперссылки в текстовом редакторе. Но у Вас, конечно же, будет свой интерфейс, где всё это может не понадобиться.
Что же до остальных зависимостей от сторонних компонентов, то они нужны здесь только для того, чтобы можно было использовать Delphi-формы от Каталогизатора практически в неизменном виде. Реального функционала они не несут, а всё, что от них используется в коде, можно вполне заменить стандартными компонентами VCL. Правда, в окне полного описания (справа снизу) используется компонент TWebBrowser, а он, насколько я понял, имеется только в полной версии Borland C++ Builder 6 (а проект создавался под 6-ю версию), той, что на двух дисках - но в Сети её найти не проблема, а в Delphi этот компонент вроде есть по умолчанию.
А так - немного работы напильником, и большинство зависимостей можно убрать, оставив только нужные, несущие функциональную нагрузку элементы главной формы.

Re: АБИС ИРБИС + Delphi помогите разобраться
Пользователь: sergey.pratsuk@gmail.com (IP-адрес скрыт)
Дата: 16, October, 2013 06:52

Привет всем.
Пытаюсь получить список новинок библиотеки из базы kniga, по идее, информация по поступлению есть в поле 907.
Каким образом должны выглядеть параметры функции IC_search для получения списка книг за определенную дату?

Re: АБИС ИРБИС + Delphi помогите разобраться
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 16, October, 2013 09:19

Цитата:
{коды АРМов}
IRBIS_READER = 'R';
IRBIS_ADMINISTRATOR = 'A';
IRBIS_CATALOG = 'C';
IRBIS_COMPLECT = 'M';
IRBIS_BOOKLAND = 'B';
IRBIS_BOOKPROVD = 'K';
Возможно ли использовать свой код нового АРМа? Например, АРМ пользователя с кодом 'Z'.

Re: АБИС ИРБИС + Delphi помогите разобраться
Пользователь: Alio (IP-адрес скрыт)
Дата: 16, October, 2013 10:19

woodyfon написал(а):
-------------------------------------------------------
> {коды АРМов}
> IRBIS_READER = 'R';
> IRBIS_ADMINISTRATOR = 'A';
> IRBIS_CATALOG = 'C';
> IRBIS_COMPLECT = 'M';
> IRBIS_BOOKLAND = 'B';
> IRBIS_BOOKPROVD = 'K';
> Возможно ли использовать свой код нового АРМа?
> Например, АРМ пользователя с кодом 'Z'.
Нет, невозможно - сервер Вас не зарегистрирует.

Re: АБИС ИРБИС + Delphi помогите разобраться
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 16, October, 2013 11:11

Перепроверил: сервер регистрирует, в окошке Списка зарегистрированных клиентов строка присутствует и возвращает . Но незвозожно прочитать содержимое конфигурационного файлика для соответствующего АРма (используются известные демо-примеры). В столбце "АРМ" пустое значение. Придется пользоваться кодом 'A'. Существует ли функция в библиотеке, которая возвращает только секцию ini-файла?

Re: АБИС ИРБИС + Delphi помогите разобраться
Пользователь: S-presso (IP-адрес скрыт)
Дата: 17, October, 2013 12:41

Цитата:
Существует ли функция в библиотеке, которая возвращает только секцию ini-файла?

А какая ещё функция Вам нужна для этого, кроме IC_reg? Можете посмотреть, как у меня считываются соответствующие секции возвращаемого ей текстового буфера, например, в функциях GetData() и GetPlugins() модуля CMAIN.cpp.

Re: АБИС ИРБИС + Delphi помогите разобраться
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 24, October, 2013 14:51

Какое оптимальное значение буфера? При малом размере буфера многие фнукции отказываются работать.

Re: АБИС ИРБИС + Delphi помогите разобраться
Пользователь: Gena (IP-адрес скрыт)
Дата: 24, October, 2013 16:57

Я обычно методом "тыка" подбираю. Все зависит от того, что будет возвращаться. Если будет возвращаться ини-файл клиента, то там нужно много, так как нужно свалить порядка 25-30 кбайт, если в ответ будет возвращаться конкретное поле, то там буффера хватит и размером порядка 100-200. Буффер для терминов словаря скорее всего будет большим. Оптимально прикинуть средний размер терминов и помножить на константу максимального количества возвращаемых терминов.

Re: АБИС ИРБИС + Delphi помогите разобраться
Пользователь: woodyfon (IP-адрес скрыт)
Дата: 20, December, 2014 22:25

На страницеirbis64.dll описан порядок работы с базами данных ИРБИС с помощью библиотеки IRBIS64.dll. Указано, что сначала необходимо инициализировать переменную типа TIrbisSpace с помощью функции IrbisInit. Эта переменная предназначена для хранения контекста работы с базой и требуется при вызове большинства функций библиотеки IRBIS64.dll.
Как нужно описать эту переменную?
Может по аналогии с переменной буфера из клиентской библиотеки
type TBuffer = packed record
   size:integer;
   capacity:integer;
   data:PChar;
   end;
type PBuffer = ^TBuffer;

Страницы: <<12
Страница: 2 из 2


Извините, только зарегистрированные пользователи могут писать в этом форуме.
This forum powered by Phorum.