19 сент. 2019 г.

Полнотекстовый поиск по содержимому файлов

    Многие программисты сталкиваются с тем, что их информационная система должна иметь полнотекстовый поиск. На помощь им приходят разработчики СУБД, которые предлагают свои решения. Встроенный механизм полнотекстового поиска есть у всех ведущих СУБД: Oracle, SQL Server, MySQL, PostgreSQL... Но не все они, как Oracle Text, умеют индексировать содержимое документов в форматах MS Office, PDF, XML, HTML... плюс к этому у многих есть проблемы с морфологией русского языка и производительностью.
    Единственным выходом является использование специальных поисковых систем. Наиболее распространенными являются системы построенные на базе библиотеки Lucene: Elasticsearch, Solr и Sphinx. Мой выбор пал на Elasticsearch.

16 сент. 2019 г.

Запись в MS Excel. Кто быстрее?


    В марте этого года я протестировал скорость чтение информации из файла MS Excel библиотеками работающие с файлом MS Excel "напрямую" (Чтение из MS Excel. Кто быстрее?). Сегодня давайте взглянем, как эти библиотеки справляются с записью файла.
    Мой тест создает новый XLSX-файл с одним листом, на который записывает 10000 строк по 100 столбцов.
const
  ciRowCount = 10000;
  ciColCount = 100;
Каждая библиотека формирует файл 10 раз и результатом теста является среднее время. В качестве компилятора использована RadStudio v10.3.2. А результаты подтверждены на другом компьютере с компиляцией в RadStudio v10.3.1.

11 сент. 2019 г.

Delphi & Linux. Выпусти своего демона

    В далеком 2003-м году один из наших заказчиков начал переход на Linux. Для него мы сделали свой первый проект на Kylix. Первый... и последний... Заигравшись с Microsoft компания Borland успешно похоронила Delphi под Linux... Спустя 15 лет после этого разработчики Delphi снова вернулись к теме Linux, выпустив в 2017 году Embarcadero Delphi 10.2 Tokyo с поддержкой Linux x86_64.
    Недавно мне понадобилось написать "службу", которая работает и под Windows и Linux. Оказалось, что все не просто, а очень просто.

9 сент. 2019 г.

Новый генератор XLSX-файлов в EhLib 9.4

    В EhLib всегда была возможность экспорта содержимого DBGridEh в MS Excel. Но EhLib версии 9.4 была дополнена новым классом TXlsMemFileEh, который не привязан к DBGridEh и является настоящим генератором файлов в формате MS Excel. Т.е. при желании используя TXlsMemFileEh можно создавать XLSX-файлы на основании любых данных.

4 сент. 2019 г.

FlexCel и "'msbuild.exe' is not recognized as an internal or external command"

    Решил я на сон грядущий установить последнюю версию TMS FlexCel под Delphi Rio. Инсталлятор успешно удалил старую версию библиотеки, но установку новой версии завершил ошибкой:
'msbuild.exe' is not recognized as an internal or external command
    В FlexCel Installation Guide по поводу этой ошибки написано "This version of the product does not support command line compiling" с намеком, что у меня Delphi Starter или Delphi Trial. И так как это не так, то единственный выход - это компиляция и установка пакетов библиотеки вручную. Устанавливать больше десяти пакетов вручную мне было лень, поэтому я начала искать другой выход.