Форум программистов, компьютерный форум, киберфорум
Без категории
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
Без категории Записи без категории
Старый
Рейтинг: 5.00. Голосов: 1.
Поддержка дополнительных языков программирования во внедренных скриптах XSLT
Запись от diadiavova размещена 07.06.2021 в 11:00
Показов 5011 Комментарии 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
Показов 4255 Комментарии 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
Показов 8248 Комментарии 14

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

Если описывать задачу, которую мы здесь будем решать, в двух словах, то состоит она во взаимодействии настольного приложение с браузером. Мне известно о существовании Selenium WebDriver, однако, насколько я знаю, возможности...
Аватар для diadiavova
Старый
Рейтинг: 4.50. Голосов: 2.
Расширение для Inkscape. Дополнение.
Запись от diadiavova размещена 02.06.2020 в 09:00
Показов 3207 Комментарии 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
Показов 1794 Комментарии 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
Показов 3455 Комментарии 0

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

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

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

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

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

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

В документации читаем:
Встроенные функции
...
Аватар для diadiavova
Старый
Рейтинг: 5.00. Голосов: 1.
Библиотека fparsec. Паресер математических выражений.
Запись от diadiavova размещена 29.07.2018 в 09:00
Показов 2552 Комментарии 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
Показов 3363 Комментарии 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
Показов 4930 Комментарии 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
Показов 8008 Комментарии 0

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

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

  1. Задача с форума
  2. Попробуем обобщить
Задача с форума
Недавно на форуме попался достаточно простой вопрос - как получить длину самой длинной последовательности чисел, идущих подряд (то есть где каждое последующее число диапазона больше предыдущего на единицу). Решение задачи достаточно простое...
Аватар для diadiavova
Старый
Рейтинг: 5.00. Голосов: 1.
Несколько мыслей об HTA
Запись от diadiavova размещена 03.03.2017 в 13:49
Показов 13314 Комментарии 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
Показов 2841 Комментарии 0
Метки c#, midi, music, winmm

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

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

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

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

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

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

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

  1. Выделяем логику воспроизведения в отдельный метод
  2. Создаем понятный формат
  3. Пример мелодии
  4. Код обработки формата
Идею для статьи навеяла одноименная тема на форуме. Практическое применение проигрывания мелодий с помощью Console.Beep, по всей видимости, если и существует, то очень ограниченное, так что все нижеизложенное - не более чем развлечение. Ну, разве что можно давать консольным...
Аватар для diadiavova
Старый
Поговорим об XPathNavigator
Запись от diadiavova размещена 29.08.2016 в 23:48
Показов 4066 Комментарии 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
Показов 4364 Комментарии 0
Метки c#, linux, mono, mozilla, webbrowser

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

На данный момент (17.04.2017) скрипты размещенные в этой теме первоначально - неактуальны. Вконтактик сменил структуру страниц, адресов аудиофайлов теперь вообще нет на страницах и как они запрашиваются - неизвестно. Скрипт для скачивания видео заменил рабочей версией.
  1. Постановка вопроса
  2. Инструменты
  3. Загрузка музыки
  4. Загрузка видео
Постановка вопроса

Когда описывается очередной способ сделать то, что уже давным-давно...
Аватар для diadiavova
Старый
Использование Saxon в Visual Studio
Запись от diadiavova размещена 14.06.2015 в 14:11
Показов 3495 Комментарии 0
Метки visual studio, xslt

Нашел вполне себе приемлемый способ использования процессора Saxon для преобразования XSLT 2 прямо из интерфейса Visual Studio. Что касается подключения схемы и всего, что с ним связано уже писал здесь, так что повторяться не буду.

Что касается преобразования. Тут я делают так:
  1. Преобразование, исходный документ и результат преобразования должны лежать в одном каталоге
  2. Имя преобразования
...
Аватар для diadiavova
Старый
Рейтинг: 5.00. Голосов: 1.
Об XML-фильтрах OpenOffice. Часть 6-я.
Запись от diadiavova размещена 12.06.2015 в 11:23
Показов 2993 Комментарии 0
Метки libreoffice, openoffice, xslt

  1. Чуть не забыл о шрифтах
  2. Таблицы
  3. Списки
  4. Заключение
Чуть не забыл о шрифтах
Имя шрифта определяется атрибутом style:font-name. Его определение просто надо добавить в функию my:calculate-styles. Ничего необычного, так что просто привожу текущую версию функции.
Кликните здесь для просмотра всего текста
XML
1
2
3
4
  <xsl:function name="my:calculate-styles">
    <xsl:param name="node"/>
    <xsl:variable name="text-position">
      <xsl:variable name="att-value"
...
Аватар для diadiavova
Старый
Об XML-фильтрах OpenOffice. Часть 5-я.
Запись от diadiavova размещена 11.06.2015 в 16:38
Показов 2998 Комментарии 0
Метки libreoffice, openoffice, xslt

  1. Закладки и сноски
  2. Верхний и нижний индексы.
  3. Горизонтальное выравнивание
Закладки и сноски

С закладками все предельно просто. Начало закладки определяется элементом text:bookmark-start, конец - text:bookmark-end. Атрибут text:name определяет имя закладки. Имя есть у обоих элементов, но нам оно понадобится только у открывающего.
XML
1
2
3
  <xsl:template match="text:bookmark-start">
  <xsl:value-of select="concat('[APLACE=&quot;', @text:name, '&quot;]')"/>
  </xsl:template>[/]
...
Аватар для diadiavova
Старый
Об XML-фильтрах OpenOffice. Часть 4-я.
Запись от diadiavova размещена 11.06.2015 в 10:37
Показов 2597 Комментарии 0
Метки libreoffice, openoffice, xslt

  1. Вычисляем размер шрифта.
  2. Обертывание в теги можно сделать более универсальным.
  3. Отступы
  4. Ссылки
Вычисляем размер шрифта.

Тот факт, что я решил поговорить о размере шрифта отдельно вовсе не означает, что мне просто хочется подробно обсмаковать каждое свойство. На самом деле в основном нам придется свойства запрашивать...
Аватар для diadiavova
Старый
Об XML-фильтрах OpenOffice. Часть 3-я.
Запись от diadiavova размещена 10.06.2015 в 12:25
Показов 2603 Комментарии 0
Метки libreoffice, openoffice, xslt

  1. Решение проблемы разделения на строки.
  2. Демонстрация работы подсветки синтаксиса кода
Решение проблемы разделения на строки.

Коль скоро мы начали с определения цвета, возьмемся за раскрашивание текста. То есть целью будет получение текста документа, раскрашенного с помощью BB-кодов. Добавим в преобразование следующую функцию, которая будет оборачивать переданный узел тегами COLOR
XML
1
2
  <xsl:function name="my:colorize">
    <xsl:param name="node"/>
...
Аватар для diadiavova
Старый
Рейтинг: 5.00. Голосов: 1.
Об XML-фильтрах OpenOffice. Часть 2-я.
Запись от diadiavova размещена 09.06.2015 в 13:08
Показов 3130 Комментарии 0
Метки libreoffice, openoffice, xslt

  1. Стили текста.
  2. Просматриваем родительские стили.
  3. Обходим контейнеры.
Стили текста.

Стили описывают способы отображения всего, что есть в документе. Характеристик там очень много и за подробностями, естественно, надо лезть в спецификацию. Но для текста мы будем рассматривать самые основные. Возьмем за основу разметку Cyberforum и постараемся сделать так, чтобы документ, созданный в OpenOffice можно было конвертировать...
Аватар для diadiavova
Старый
Рейтинг: 5.00. Голосов: 2.
Об XML-фильтрах OpenOffice. Часть 1-я.
Запись от diadiavova размещена 08.06.2015 в 17:45
Показов 14554 Комментарии 0
Метки libreoffice, openoffice, xslt

  1. Предварительные замечания.
  2. Немного об инструментах
  3. Где взять XML-документ для изучения и отладки.
  4. Подготовка преобразования.
Предварительные замечания.

Офисные пакеты OpenOffice, LibreOffice, возможно другие, основанные на том же коде, имеют интересную функцию добавления фильтров экспорта и импорта документов. Фильтры представляют из себя...
Аватар для diadiavova
Новые блоги и статьи
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru