Coder Social home page Coder Social logo

alexkmbk / regex1caddin Goto Github PK

View Code? Open in Web Editor NEW
171.0 171.0 32.0 91.09 MB

Native API component for executing regular expressions on 1C: Enterprise platform / Внешняя Native API компонента для выполнения регулярных выражений на платформе 1С:Предприятие 8

License: The Unlicense

C++ 34.34% CMake 1.96% Makefile 0.45% C 58.92% Batchfile 0.01% 1C Enterprise 3.78% Java 0.53%

regex1caddin's People

Contributors

alexkmbk avatar artbear avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

regex1caddin's Issues

Совместимость с VBScript

  1. Есть ли понимание, насколько эта реализация вычисления регулярных выражений совместима с VBScript ?
  2. Можно ли дополнить объектную модель компоненты избыточными элементами для быстрого подключения компоненты к большому коду, опирающемуся на объектную модель VBScript? Приложил пример
    Clip_208849.txt

Не работают флаги поиска если их задавать после установки шаблона

Шаблон поиска нужно задавать после установки флагов поиска
И такая конструкция в результат вернёт Ложь

    Ищейка = Новый("AddIn.Component.RegEx");
    Ищейка.Pattern = "слово";
    Ищейка.Global = Истина;
    Ищейка.Multiline = Ложь;
    Ищейка.IgnoreCase = Истина;
    
    Результат = Ищейка.Test("Слово");

При многократном поиске выражения "{1}" размножается описание ошибки

Создал объект компоненты и много раз вызывал поиск по некорректному шаблону "{1}". Каждый раз я получал описание ошибки со все большим числом повторов текста. Видимо где то не очищается описание ошибки при генерации исключения в компоненте.

{Обработка.ирОболочкаРегВыражение.МодульОбъекта(116)}: The regexp template is not specified.: : quantifier does not follow a repeatable item: : : : : : The regexp template is not specified.: : quantifier does not follow a repeatable item: : : : : : The regexp template is not specified.: : quantifier does not follow a repeatable item: : : : : : The regexp template is not specified.: : quantifier does not follow a repeatable item: : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : The regexp template is not specified.: : quantifier does not follow a repeatable item: : : : : : The regexp template is not specified.: : quantifier does not follow a repeatable item: : : : : : The regexp template is not specified.: : quantifier does not follow a repeatable item: : : : : : The regexp template is not specified.: : quantifier does not follow a repeatable item: : : : : : The regexp template is not specified.: : quantifier does not follow a repeatable item

Не метод а функция Совпадает \ IsMatch \ Test?

Вы пишите, что "Совпадает \ IsMatch \ Test(<Текст для анализа>, [<Регулярное выражение>])"
при этом указываете, что возвращает значение. Тогда это не метод, а функция!


Метод(Функция) Совпадает \ IsMatch \ Test(<Текст для анализа>, [<Регулярное выражение>])
Делает проверку на соответствие текста регулярному выражению.

Возвращаемое значение: Булево. Возвращает значение Истина если текст соответствует регулярному выражению.

Запрос функции: Именованные группы

Привет!

Я недавно обнаружил ваш проект и нашел его очень полезным. Очень круто, спасибо большое.
Однако, насколько я понимаю, в текущей версии (14.2) не поддерживаются именованные группы. Есть ли возможность добавить их поддержку?

Не верно отрабатывает регулярка.

Есть регулярка \<(?!Auto)[a-zA-z]+\s?.?[0-9a-zA-Z]+\>
Работает вот так:
image
Но тут, увы, регулярка выбирает абсолютно все слова, разделяя их пробелом, причем ей все равно на теги.
Это баг, или я что то не то делаю?

Реализовать выброс исключения с указанием описания ошибки

Сейчас каждый вызов метода компоненты приходится заворачивать в попытку и перевыбрасывать исключение с передачей описания ошибки их свойства ОписаниеОшибки. Это довольно неудобно. Хотелось бы выброс исключения из самой компоненты с указанием описания ошибки без необходимости перевыброса в коде 1С.

Сборка не пошла

В среде: Win10, VS2022

Сборка начата…
1>------ Сборка начата: проект: RegEx, Конфигурация: Debug x64 ------
1>cl : командная строка warning D9035: использование параметра "Gm" нежелательно, он будет удален в следующих выпусках
1>stdafx.cpp
1>cl : командная строка warning D9035: использование параметра "Gm" нежелательно, он будет удален в следующих выпусках
1>StrConv.cpp
1>json.cpp
1>AddInNative.cpp
1>C:\Users\evgen\source\repos\RegEx1CAddin-master\AddInNative.cpp(38,27): warning C4311: приведение типов: усечение указателя из "IComponentBase *" в "long"
1>C:\Users\evgen\source\repos\RegEx1CAddin-master\AddInNative.cpp(38,27): warning C4302: приведение типов: усечение из "IComponentBase *" к "long"
1>C:\Users\evgen\source\repos\RegEx1CAddin-master\AddInNative.cpp(197,5): warning C4267: аргумент: преобразование из "size_t" в "unsigned long"; возможна потеря данных
.......... и так далее, Затем
1>dllmain.cpp
1> Создается библиотека C:\Users\evgen\source\repos\RegEx1CAddin-master\bind64\RegExWin64.lib и объект C:\Users\evgen\source\repos\RegEx1CAddin-master\bind64\RegExWin64.exp
1>AddInNative.obj : error LNK2019: ссылка на неразрешенный внешний символ pcre2_compile_16 в функции "private: struct pcre2_real_code_16 * __cdecl CAddInNative::GetPattern(struct _tVariant const *)" (?GetPattern@CAddInNative@@AEAAPEAUpcre2_real_code_16@@PEBU_tVariant@@@z).
1>AddInNative.obj : error LNK2019: ссылка на неразрешенный внешний символ pcre2_code_free_16 в функции "public: virtual __cdecl CAddInNative::~CAddInNative(void)" (??1CAddInNative@@UEAA@XZ).

Пожалуйста, подскажите. Опыт небольшой в проектах такого рода, фактически проект использую для изучения темы 1С внешние компоненты и освоения VS и С++ (очень-очень давно опыт с С был), сам не докопаюсь до причины, видимо.

info.xml для БСП ВнешниеКомпаненты

<?xml version="1.0" encoding="utf8"?>
<info>
	<progid>RegEx</progid>
	<name>RegEx1CAddin</name>
	<version>1.10.1</version>
</info>

Если в zip подложить ифо, тогда при загрузке в справочник данные подтянутся сами.

image

Ошибка в методе НайтиСовпадения

При передаче в метод длинного текста (пробовал на 500 символах) клиент падает!
Очень прошу пофиксить! Разработка очень нужна в жизни!%)

Свойство ОписаниеОшибки заполняется в какой то странной кодировке

Свойство ОписаниеОшибки содержит например текст
T h e r e g e x p t e m p l a t e i s n o t s p e c i f i e d . : u n m a t c h e d c l o s i n g p a r e n t h e s i s : : T h e r e g e x p t e m p l a t e i s n o t s p e c i f i e d . : u n m a t c h e d c l o s i n g p a r e n t h e s i s : : T h e r e g e x p t e m p l a t e i s n o t s p e c i f i e d . : u n m a t c h e d c l o s i n g p a r e n t h e s i s : : T h e

изображение
изображение

При выводе в окно сообщений такого текста появляется только буква "Т"

Доступность на ВебКлиенте

Есть ли способ установить данную компоненту в ВебКлиенте? Получаю вот такое сообщение при вызове:
НачатьУстановкуВнешнейКомпоненты(Новый ОписаниеОповещения("КомпонентаRegExУстановлена", НПR), "ОбщийМакет.RegEx");
image
При этом на тонком клиенте всё работает.

Падение на Linux на 22 платформе (всех)

Падение очень интересное - сервер перезагружаем, компонента подключается успешно, все хорошо.
Делаем первый вызов - все работает отлично.
Делаем второй - устанавливаются аттрибуты Global и т.д., а вот на вызове уже метода сравнения - падает.
Делаем третий раз - или выдается ошибка "Error calling constructor (AddIn.Component.RegEx)"

If AttachAddIn("CommonTemplate.addfun_RegExp", "Component") Then
		Regex = New("AddIn.Component.RegEx");

или зависает 1С. И все. Причем - установка компоненты отрабатывает.

Аварийное завершение программы при попытке анализировать несовместимый тип

Если вместо строки попытаться проанализировать число, то компонента вызовет аварийное завершение программы
Неплохо было бы в данной ситуации привести несовместимый тип к текстовому представлению или, хотя бы, вызвать исключение.
падает 32хразрядный клиент 8.3.18 на 64хразрядной винде.
Шаблон выполнялся в файловой базе на сервере в фоновом задании.
Значение получено из ячейки Екселевсеого файла.
Пример могу дать только вечером.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.