Форум программистов, компьютерный форум, киберфорум
diadiavova
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
Старый
Рейтинг: 5.00. Голосов: 1.
Поддержка дополнительных языков программирования во внедренных скриптах XSLT
Запись от diadiavova размещена 07.06.2021 в 11:00
Показов 4883 Комментарии 0

В предыдущем посте я рассматривал возможность реализации поддержки внедренных скриптов в .Net 5 и .Net Core. В развитие темы я подумал, что не стоит ограничиваться языками C# и VB.Net и решил поэкспериментировать и с другими языками программирования. В первую очередь мой выбор пал на языки WSH, то есть Jscript и VBScript. Эти языки поддерживаются библиотекой msxml (пример можно посмотреть здесь), механизм внедрения такой же как и в случае преобразования...
Аватар для diadiavova
Старый
Рейтинг: 5.00. Голосов: 1.
Возвращение поддержки внедренных скриптов в XSLT в .Net Core и .Net 5
Запись от diadiavova размещена 29.05.2021 в 09:00
Показов 4162 Комментарии 2

  1. Немного теории
  2. Процессор
  3. Добавление статического объекта
  4. Компиляция
  5. ProxyGenerator
  6. Результаты
В .Net Framework для XSLT поддерживалась возможность включать в XSLT скрипты, написанные на нескольких языках программирования (C#, VB.Net, JScript.Net). Функции, описанные в этих скриптах можно использовать в выражениях XPath, благодаря чему...
Аватар для diadiavova
Старый
Рейтинг: 4.00. Голосов: 4.
Управление браузером из внешнего приложения
Запись от diadiavova размещена 22.06.2020 в 09:00
Показов 8039 Комментарии 14

  1. Общие замечания
  2. Сервер
  3. Реализация расширения
  4. Приложение
  5. Запускаем – проверяем
Общие замечания

Если описывать задачу, которую мы здесь будем решать, в двух словах, то состоит она во взаимодействии настольного приложение с браузером. Мне известно о существовании Selenium WebDriver, однако, насколько я знаю, возможности...
Аватар для diadiavova
Старый
Рейтинг: 4.50. Голосов: 2.
Расширение для Inkscape. Дополнение.
Запись от diadiavova размещена 02.06.2020 в 09:00
Показов 3110 Комментарии 2

  1. Расширение XSLT 2.0 с использованием Saxon
  2. Расширение на Node.js
В предыдущем посте я рассмотрел общий подход к созданию расширения для Inkscape на примере приложения C#, которое выполняет преобразование XSLT. Сейчас мне просто хотелось бы добавить пару примеров.
Расширение XSLT 2.0 с использованием Saxon

Приложение, запускающее преобразование XSLT, рассмотренное в предыдущем посте, может быть полезно...
Аватар для diadiavova
Старый
Добавление схемы XSLT 2.0 в Visual Studio
Запись от diadiavova размещена 31.05.2020 в 09:00
Показов 1686 Комментарии 0
Метки visual studio

В Visual Studio поддерживается только XSLT версии 1.0. Я уже раньше писал, как можно использовать Saxon для выполнения преобразований XSLT 2.0 из интерфейса Visual Studio, но для поддержки редактирования документов этой версии в «студии» понадобится схема. Схему можно скачать отсюда, но работать она вот прям так сразу не будет. Во-первых, там есть две инструкции импорта, которые ссылаются на документы...
Аватар для diadiavova
Старый
Рейтинг: 4.50. Голосов: 2.
Структурное равенство и структурное сравнение в F#
Запись от diadiavova размещена 27.05.2020 в 09:00
Показов 3247 Комментарии 0

  1. Структурное равенство
  2. Равенство сложных типов
  3. Зачем это нужно
  4. Пример из мира Судоку (лирическое отступление)
  5. Структурное сравнение
  6. Что нам все это дает
Структурное равенство и структурное сравнение в F#

В общем и целом, данные вопросы вряд ли вызывают серьезные затруднения, однако разобраться в некоторых нюансах, как мне кажется, будет интересно.

Структурное равенство

Начнем с простого примера. Создадим консольное...
Аватар для diadiavova
Старый
Рейтинг: 5.00. Голосов: 2.
Встраиваемые функции и статически разрешаемые параметры типов в F#
Запись от diadiavova размещена 23.10.2019 в 09:00
Показов 1823 Комментарии 0

  1. Куда и как встраиваются функции
  2. Статически разрешаемые параметры типов
  3. Привязка к членам в теле функции
Читая документацию по данным вопросам, я ловил себя на мысли, что какие-то важные детали от меня ускользают, причем вовсе даже не потому, что что-то непонятно описано, а потому, что в документации отсутствуют какие-то важные детали. Поэтому решил разобраться в этом более детально.

Куда и как встраиваются функции

В документации читаем:
Встроенные функции
...
Аватар для diadiavova
Старый
Рейтинг: 5.00. Голосов: 1.
Библиотека fparsec. Паресер математических выражений.
Запись от diadiavova размещена 29.07.2018 в 09:00
Показов 2432 Комментарии 0

  1. А в чем проблема?
  2. Модель дерева
  3. Класс OperatorPrecedenceParser
  4. Добавление унарных операторов
  5. Бинарные операторы
  6. Тернарный оператор
  7. Числа, скобки и фукнции
  8. Определение TermParser
  9. Тестирование
  10. О дополнительных функциях
А в чем проблема?

При парсинге математических выражений, наибольшую сложность, пожалуй, вызывают инфиксные операторы. Сложность заключается в том,...
Аватар для diadiavova
Старый
ASP.Net MVC + EF Core: пробуем подружить с F#
Запись от diadiavova размещена 05.07.2018 в 09:00
Показов 3258 Комментарии 0
Метки asp.net, aspnet, efcore, f#

  1. Введение
  2. Создание проекта
  3. Подготовка к использованию
  4. Создание модели
  5. Пробуем добавить миграцию
  6. Проект на C# и миграция
  7. Работа с данными
  8. Добавление связанных данных
Введение

В процессе описания мы создадим проект ASP.Net MVC на платформе .Net Core на языке F#, добавим к нему Entity Framawork Core и разберемся как все это можно совместить. Для того чтобы не "изобретать велосипед", я взял за основу руководство, написанное для языка C# и далее буду...
Аватар для diadiavova
Старый
Рейтинг: 5.00. Голосов: 2.
Пишем JSFuck-транслятор
Запись от diadiavova размещена 04.06.2018 в 01:23
Показов 4849 Комментарии 0
Метки javascript, jsfuck

  1. О чем пойдет речь
  2. Базовые понятия
  3. Приступим к написанию кода
  4. Дополним базовый словарь
  5. Работа с функциями
  6. Использование encodeURI вместо escape
  7. Несколько мыслей по поводу оптимизации вывода
  8. Оптимизация работы с fromCharCode
  9. Немного тестов
О чем пойдет речь

Для начала цитата из Википедии
JSFuck is an esoteric programming style of JavaScript, where code is written using only six characters: [,], (, ), !, and +. The name is derived from Brainfuck, an esoteric
...
Аватар для diadiavova
Старый
Рейтинг: 2.50. Голосов: 2.
И снова музыка VK
Запись от diadiavova размещена 07.11.2017 в 13:09
Показов 7917 Комментарии 0

  1. Предварительные замечания
  2. Получение данных о треке
  3. Получение прямой ссылки
  4. Скрипт для Tampermonkey
Предварительные замечания

На тему скачивания музыки из социальной сети "В контакте" я уже писал ранее, но с тех пор кое-что изменилось, так что скрипты, актуальные для того времени - больше не работают. Мало того, "вконтактик"...
Аватар для diadiavova
Старый
Рейтинг: 5.00. Голосов: 1.
Разбиение коллекции на диапазоны средствами LINQ.
Запись от diadiavova размещена 24.10.2017 в 14:51
Показов 2915 Комментарии 0
Метки c#, linq

  1. Задача с форума
  2. Попробуем обобщить
Задача с форума
Недавно на форуме попался достаточно простой вопрос - как получить длину самой длинной последовательности чисел, идущих подряд (то есть где каждое последующее число диапазона больше предыдущего на единицу). Решение задачи достаточно простое...
Аватар для diadiavova
Старый
Рейтинг: 5.00. Голосов: 1.
Несколько мыслей об HTA
Запись от diadiavova размещена 03.03.2017 в 13:49
Показов 13132 Комментарии 0

  1. Об HTML-приложениях.
  2. Краткое сравнение или почему HTA выглядит привлекательно
  3. В поисках утраченного диалога
  4. Не оставлять же все в таком виде
  5. А нельзя ли сделать поудобнее?
  6. Попробуем что-нибудь запустить
  7. Заключение
Об HTML-приложениях.

Клиентские Web-технологии (я сейчас говорю в первую очередь о связке HTM/JavaScript/CSS) уже давно вышли за пределы той ниши, которая была им...
Аватар для diadiavova
Старый
Рейтинг: 5.00. Голосов: 3.
MIDI музыка на C#. Часть 4-я.
Запись от diadiavova размещена 20.10.2016 в 13:18
Показов 2767 Комментарии 0
Метки c#, midi, music, winmm

  1. Пауза и воспроизведение с любого момента
  2. Фильтр по каналам
  3. Транспозиция
Пауза и воспроизведение с любого момента

Остановить воспроизведение несложно, надо только иметь в виду, что на момент остановки, какие-то звуки уже звучат и их неплохо было бы остановить, а стало быть простого уничтожения таймера будет недостаточно....
Аватар для diadiavova
Старый
Рейтинг: 5.00. Голосов: 1.
MIDI музыка на C#. Часть 3-я.
Запись от diadiavova размещена 18.10.2016 в 15:59
Показов 2997 Комментарии 0
Метки c#, midi, music, winmm

  1. Шаблоны аккордов
  2. Другой подход к шаблонизации аккордов
  3. Воспроизведение с использованием таймера
Шаблоны аккордов

При написании GetChord мне пришлось несколько раз исправлять ошибки. Несмотря на то, что рисунок аккомпанемента был чрезвычайно простым, реализация его в виде потока сообщений оказалась задачей не такой...
Аватар для diadiavova
Старый
Рейтинг: 5.00. Голосов: 1.
MIDI музыка на C#. Часть 2-я.
Запись от diadiavova размещена 04.10.2016 в 16:14
Показов 3119 Комментарии 0
Метки c#, midi, music, winmm

  1. Воспроизведение потока сообщений
  2. Аккомпанемент
  3. Объединение коллекций сообщений
Воспроизведение потока сообщений

Описанный выше метод воспроизведения мелодии - на самом деле не очень хорош. Он довольно просто реализуется и хорош тем, что в результате мы получаем методику очень похожую на исполнение мелодий на бипере,...
Аватар для diadiavova
Старый
Рейтинг: 5.00. Голосов: 3.
MIDI музыка на C#. Часть 1-я.
Запись от diadiavova размещена 02.10.2016 в 17:59
Показов 15621 Комментарии 12
Метки c#, midi, music, winmm

  1. Воспроизводим ноту
  2. Сыграем мелодию
  3. Воспользуемся старыми наработками
Разбираясь в вопросах темы "Мелодии на бипере", решил не останавливаться на достигнутом и пошел дальше. Наиболее естественным способом что-то сыграть на компьютере является использование MIDI. Естественно, для разработки профессионального...
Аватар для diadiavova
Старый
Рейтинг: 5.00. Голосов: 1.
Мелодии на бипере
Запись от diadiavova размещена 26.09.2016 в 15:48
Показов 13636 Комментарии 0
Метки beep, c#, music

  1. Выделяем логику воспроизведения в отдельный метод
  2. Создаем понятный формат
  3. Пример мелодии
  4. Код обработки формата
Идею для статьи навеяла одноименная тема на форуме. Практическое применение проигрывания мелодий с помощью Console.Beep, по всей видимости, если и существует, то очень ограниченное, так что все нижеизложенное - не более чем развлечение. Ну, разве что можно давать консольным...
Аватар для diadiavova
Старый
Поговорим об XPathNavigator
Запись от diadiavova размещена 29.08.2016 в 23:48
Показов 3958 Комментарии 0

  1. О языке XPath
  2. Преимущества XPathNavigator
  3. Создаем собственный XPathNavigator
  4. Расширение языка собственной функцией
  5. Тестирование
  6. Использование XSLT
О языке XPath

XPath – прекрасный язык навигации по XML-документу. Его удобно использовать как для отбора узлов в документе XML, так и как составную часть других языков, таких как: XLink, XSLT или XQuery....
Аватар для diadiavova
Старый
Mono под Linux'ом. Жизнь без WebBrowser.
Запись от diadiavova размещена 18.07.2016 в 16:51
Показов 4292 Комментарии 0
Метки c#, linux, mono, mozilla, webbrowser

Недавно понадобилось писать небольшие приложения под Linux. Естественно, первое, что я предпринял в этом направлении - начал изучать, какие возможности предоставляет Mono и особенно WinForms. Причины вполне понятны: хорошо знакомая технология, язык, среда разработки со всеми ее наворотами....
Аватар для diadiavova
Старый
CustomButtons часть 9-я. Код, сохранение параметров и отедльные приложения.
Запись от diadiavova размещена 31.03.2016 в 11:43
Показов 3156 Комментарии 0

  1. Структура кода
  2. Кнопки с настраиваемыми параметрами.
  3. Создание отдельного приложения для тестирования инструментов
  4. Кнопки с самомодифицирующимся кодом
Структура кода

Оверлей является наиболее удобным механизмом создания кнопок, вносящих изменение в структуру интерфейса. Тем не менее, используя оверлеи, надо понимать некоторые нюансы их...
Аватар для diadiavova
Старый
CustomButtons часть 7-я. Еще пара слов о GreaseMonkey и букмарклетах.
Запись от diadiavova размещена 17.03.2016 в 11:18
Показов 3330 Комментарии 0

  1. Фильтрация элементов меню в зависимости от адреса страницы
  2. Выполнение скрипта при загрузке страницы
  3. Работа с закладками
Фильтрация элементов меню в зависимости от адреса страницы

В GreaseMonkey есть такая удобная штука: команды скриптов в соответствующем меню отображаются только на тех страницах для которых одни предназначались. Это позволяет не...
Аватар для diadiavova
Старый
CustomButtons часть 6-я. Генерация текста.
Запись от diadiavova размещена 13.03.2016 в 14:23
Показов 2830 Комментарии 0

  1. Генерация текста из шаблонов
  2. Преобразование страницы с помощью XSLT
То, что будет описано в этой статье не относится исключительно к CustomButtons и платформе Mozilla, тем не менее при работе с этим расширением может оказаться полезным.
Генерация текста из шаблонов

Создание HTML-кода для отображения выходных данных и создания диалоговых окон может оказаться процессом достаточно...
Аватар для diadiavova
Старый
CustomButtons часть 5-я. Добавим интерактивности.
Запись от diadiavova размещена 10.03.2016 в 14:44
Показов 2734 Комментарии 0

  1. Панели
  2. Вывод данных в виде HTML-документа
  3. Модальные диалоги и наблюдатели
Многие задачи автоматизации требуют либо вывода какой-то информации пользователю, либо предоставления ему возможности ввести какие-то данные или выбрать параметры выполнения. Самые простые задачи такого типа могут быть решены...
Аватар для diadiavova
Старый
CustomButtons часть 4-я. Добавим оверлеи в кнопку
Запись от diadiavova размещена 06.03.2016 в 00:35
Показов 4101 Комментарии 0

  1. Оверлеи
  2. Внедрение оверлея в код кнопки
  3. Схема XUL
Дополнять контекстное меню одним-двумя элементами можно и программно, как это было показано в предыдущей статье, но создавать код более-менее сложной структуры вручную - как-то не хочется. Кроме того, пример с контекстным меню был просто иллюстрацией...
Аватар для diadiavova
Старый
CustomButtons часть 3-я. Взаимодействие с интерфейсом Firefox.
Запись от diadiavova размещена 27.02.2016 в 13:45
Показов 3623 Комментарии 0

  1. Откуда брать информацию о структуре интерфейса
  2. Контекстное меню
Ознакомившись с работой с файловой системой, буфером обмена, реестром и тому подобными вещами, можно уже делать много чего. Однако код с chrome-привилегиями может гораздо больше. И одной из таких возможностей является возможность взаимодействия...
Аватар для diadiavova
Новые блоги и статьи
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru