Форум программистов, компьютерный форум, киберфорум
bedvit
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
Старый
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
Запись от bedvit размещена 28.01.2026 в 12:35. Обновил(-а) bedvit 28.01.2026 в 12:43
Показов 2960 Комментарии 0
Метки com, vb, winapi

Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы исходники Crypto++
Использованы алгоритмы сжатия WinApi.

Нажмите на изображение для увеличения
Название: VariantToFromFile.PNG
Просмотров: 389
Размер:	89.3 Кб
ID:	11456

Функционал:
+ Сохранять данные из VARIANT в файл
+ Загружать данные из файла в VARIANT
+ Шифровать данные...
Аватар для bedvit
Старый
Рейтинг: 3.00. Голосов: 6.
Шифрование данных на листе Excel, в XLL, в COM (на примере VBA)
Запись от bedvit размещена 25.01.2024 в 17:26
Показов 5963 Комментарии 0
Метки excel, vba

Шифрование данных алгоритмами AES на листе Excel, шифрования файла пользовательских сохранений XLL, хранение зашифрованных диапазонов формул/данных с листа Excel в файле пользовательских сохранений XLL
Часть библиотеки BedvitXLL
Использованы исходники Crypto++
Расширенный пример см. на сайте bedvit.ru


Алгоритмы шифрования AES:

1 - "Без шифрования"
2 - "AES256:ECB"
...
Аватар для bedvit
Старый
Рейтинг: 3.20. Голосов: 5.
Variant Serialization and Deserialization
Запись от bedvit размещена 25.01.2024 в 17:08
Показов 4614 Комментарии 3
Метки vb

Cериализация и десериализация типа данных Variant, используемый в COM, VB, VBA, C++, Python и других поддерживающих СОМ языков

Реализация в СОМ. Реализация для XLL как функция COM.DLL
Часть библиотеки BedvitCOM
Поддерживаются базовые типы и массивы. Объекты не сериализуются.
В некоторой степени - аналог CComVariant::ReadFromStream и CComVariant::WriteToStream


Функции:
VARIANT byteArrayOutRetval = VariantSerialization(VARIANT variantIn)...
Аватар для bedvit
Старый
Рейтинг: 3.00. Голосов: 2.
Фильтр одномерного и двухмерного СОМ-массива (VARIANT)
Запись от bedvit размещена 15.10.2022 в 22:01
Показов 2341 Комментарии 0
Метки vb

Фильтр одномерного и двухмерного СОМ-массива (тип данных VARIANT) с любым количеством столбцов, с любым количеством условий.
Реализован параллельный алгоритм фильтрации (поддержка любого количества логических процессоров).
Часть библиотеки BedvitCOM (начиная с v2.0.1.0, в XLL c v3.2.1.0)

ArrayFilterV(VARIANT* array_in, VARIANT* array_parameters, VARIANT_BOOL array_out_index, VARIANT* array_out)
1. array_in - массив входящий (одномерный,...
Аватар для bedvit
Старый
Рейтинг: 3.00. Голосов: 2.
XLL хранение и выполнение VBA кода, или защита VBA кода от просмотра? (C/C++)
Запись от bedvit размещена 10.04.2022 в 17:51
Показов 1859 Комментарии 0
Метки c, c++

Инструмент позволяющий хранить VBA код в XLL и его выполнять.
Часть библиотеки BedvitXLL
Как работает: Сохраняем VBA-код в форме (см.скрин), делимся сохранением .bin с коллегами, заказчиками и т.д. (у них тоже должна стоять .xll). Они смогут использовать весь функционал, но не смогут посмотреть код без пароля.
...
Аватар для bedvit
Старый
Рейтинг: 3.40. Голосов: 5.
Быстрое преобразование размерности массива в COM без потери данных.
Запись от bedvit размещена 11.08.2021 в 13:30
Показов 3646 Комментарии 0
Метки vb

Быстрое преобразование массива в СОМ - из одномерного в двухмерный и наоборот (с сохранением данных)
Часть библиотеки BedvitCOM (начиная с v1.0.5.0, в XLL c v2.0.1.9)

Функции:
1.Array2Dto1D() - быстрое преобразования двухмерного массива в одномерный (данные не обрезаются, 2е измерение преобразуются в очередь - складывается "столбцами")
Параметры функции:
1.array_in_out - массив, который нужно преобразовать
2.lLbound - нижняя граница...
Аватар для bedvit
Старый
Рейтинг: 3.40. Голосов: 5.
unordered map в СOM, быстрая хеш-таблица, содержащая пары: уникальный ключ-значение
Запись от bedvit размещена 01.07.2021 в 17:36
Показов 5112 Комментарии 0
Метки com, vb

Реализация в COM ассоциативного контейнера, содержащего пары ключ-значение с уникальными ключами. Поиск, вставка и удаление элементов имеют среднюю постоянную сложность.
Часть библиотеки BedvitCOM (начиная с v1.0.4.7, в XLL c v2.0.1.5)
Использован стандартный контейнер С++: std::unordered_map (хеш-таблица)

КЛЮЧ: можно использовать любые данные (не включая ссылки на массивы и объекты), ключ...
Аватар для bedvit
Старый
Рейтинг: 4.00. Голосов: 5.
Хеширование строки алгоритмами SHA (СОМ-реализация) + шифрование AES
Запись от bedvit размещена 03.11.2020 в 11:13
Показов 6122 Комментарии 0
Метки com, vb

Реализация в СОМ. Реализация для XLL как функция COM.DLL
Часть библиотеки BedvitCOM
Использованы исходники Crypto++

Функция:
HashStringSHA(StringIn, VersionSHA)

Параметры функции:
1.StringIn - входящая строка
2.VersionSHA - версия алгоритма SHA

Поддержка следующих алгоритмов (+ новейшие SHA3) :
VersionSHA = 1, SHA1
VersionSHA = 2224, SHA2_224 ...
Аватар для bedvit
Старый
Рейтинг: 3.40. Голосов: 5.
Быстрая реализация сортировки и удаления дубликатов строк в csv/txt(ANSI) файлах (WinAPI + С++)
Запись от bedvit размещена 03.07.2020 в 16:07
Показов 2984 Комментарии 0
Метки c++, com, vb

Реализация для XLL как функция COM. Реализация в СОМ.
Часть библиотеки BedvitCOM
Сортировка и удаление (опционально) в .txt-файле размером 1Гб, 4 млн. строк. = 3,0 1,6 сек. (файл кеширован)
Потребление памяти: размер файла + (от 4Кб*5 до 16Мб*2) (в зависимости от размера файла, на буферы и сортировку)
Алгоритм оптимизирован на большие файлы....
Аватар для bedvit
Старый
Рейтинг: 3.40. Голосов: 5.
Быстрая реализация поиска строк в csv/txt(ANSI) файлах (WinAPI + С++)
Запись от bedvit размещена 06.06.2020 в 23:22
Показов 8330 Комментарии 37
Метки c++, vba, winapi

Реализация для XLL как функция Excel. В планах, реализация в СОМ. Реализовано.
Часть библиотеки BedvitXLL
Особенности реализации:
1.WinAPI: CreateFile + ReadFile
2.Асинхронность в чтения с диска и выполнения рабочего кода.
3.Возможность отключения системного кеширования.
4.Посему чтение блоками, кратно степени двойки - по 16 Мб.(16777216 байт), в большинстве hdd - такого размера свой кеш.
...
Аватар для bedvit
Старый
Рейтинг: 3.67. Голосов: 6.
Печать QR-кода в COM/ActiveX и в Excel
Запись от bedvit размещена 22.04.2020 в 23:56
Показов 35929 Комментарии 0
Метки 1с, excel, vb, word

Печать QR-кода в Excel, Word, 1С и проч. приложениях с поддержкой COM/ActiveX.
Часть библиотеки BedvitCOM
Использованы: libqrencode + GDI+

Страницы на сайте: https://bedvit.ru/xll/qr/
Страницы на сайте: https://bedvit.ru/com/qr/

Функционал:
1. Сохранение изображения в форматы: bmp, jpeg, gif, tiff, png.
2. QR-кода сохраняется в монохромное изображение, где формат позволяет, т.е. до 1 бита на пиксель. В любом цвете RGB. К...
Аватар для bedvit
Старый
Рейтинг: 3.29. Голосов: 7.
Библиотека COM (OLE Automation). Часть 2 - ArraySort (Variant)
Запись от bedvit размещена 26.08.2019 в 16:35
Показов 4001 Комментарии 0
Метки com, vba

Часть библиотеки BedvitCOM
...и продолжение темы Библиотека COM (OLE Automation). Часть 1 - ArraySort (String)

В классе "VBA" добавил новый метод "ArraySortV" - сортировка любого типа данных.
Метод "ArraySort" переименован в "ArraySortS".
Функционал: "ArraySortS" - сортировка данных (String) в одномерном/двухмерном массиве.
"ArraySortV" - сортировка данных (Variant) в одномерном/двухмерном...
Аватар для bedvit
Старый
Рейтинг: 3.55. Голосов: 11.
BedvitCOM (библиотека COM/ActiveX) + BedvitXLL (библиотека XLL c C API Functions для Excel) С/С++
Запись от bedvit размещена 06.08.2019 в 18:48
Показов 52472 Комментарии 20
Метки c, c++, com, excel, си

Решил объединить все проекты по данной тематике в одно решение.
Скачать новые версии библиотек XLL и COM на сайте.

Более подробно по компонентам - в отдельных темах (будут линки).

1.BedvitCOM (библиотека COM/ActiveX)

Область применения - COM/ActiveX поддерживающие приложения/языки на Windows (х32, х64).
Реализованы dual-интерфейсы с Automation-совместимыми типами данных (поддержка...
Аватар для bedvit
Старый
Рейтинг: 4.14. Голосов: 7.
Клеточные автоматы ч.2 - Conway's Game of Life (С++ WinAPI)
Запись от bedvit размещена 01.03.2019 в 21:15
Показов 10979 Комментарии 16
Метки c++, winapi

Решил сделать свой велик.
Программа Life
Видео и новые версии программы на сайте.

Продукт написан на С++, GUI на WinAPI.
Предыдущая часть: Клеточные автоматы ч.1 - Conway's Game of Life in Excel

Основные параметры:
1. Размер игрового поля 2^32 на +2^32 клеток (рамка примерно 4,3*4,3 млрд. клеток) - поле закольцовано по X, Y координатам.
2. Масштаб от 32 пикселей - одна клетка, до 1 млр. клеток на один пиксель (можно загрузить...
Аватар для bedvit
Старый
Рейтинг: 3.40. Голосов: 5.
Клеточные автоматы ч.1 - Conway's Game of Life in Excel
Запись от bedvit размещена 01.03.2019 в 20:55
Показов 5057 Комментарии 0
Метки excel

Зацепила тема, реализовал довольно шустрый (для Excel 2010 и выше) алгоритм.
То, что вышло - прилагаю.

Функционал:
1. Переключатель "гибель клеток на границе - 0 / закольцованные координаты - 1 "
2. Счетчик поколений
3. Замедление расчета задаваемое в секундах,...
Аватар для bedvit
Старый
Рейтинг: 3.40. Голосов: 5.
Библиотека COM (OLE Automation). Часть 1 - ArraySort (String)
Запись от bedvit размещена 13.11.2018 в 21:46
Показов 7407 Комментарии 18
Метки c++, vba, winapi

Теперь часть библиотеки BedvitCOM.
См. Часть 2.
Решил запустить пробный шар, и если будет время и интерес к данной тематике, возможно сделаю что-то годное в своих COM и XLL библиотеках.
Цель - скорость и удобство работы, создание для скриптовых языков, языков с поддержкой COM - того, чего там нет или есть, но хочется лучше.
В данном момент ориентир на VBA.
Добавил новый класс - "VBA" к двум уже существующим (см. ссылку выше).
Добавил новый...
Аватар для bedvit
Старый
Рейтинг: 3.67. Голосов: 6.
Длинная арифметика (Bignum arithmetic) c COM-интерфейсом и C API Functions для Excel на библиотеках MPIR. С/С++
Запись от bedvit размещена 26.03.2018 в 22:15
Показов 26727 Комментарии 160
Метки c, c++

Теперь часть библиотеки BedvitCOM.
Проект основан на исходниках (на С++) библиотеки MPIR, Edition 3.0.0. (на основе библиотеки GMP)
Полностью написан на С/С++.
Скорость на порядок выше предыдущего решения.
Реализовал два блока в проекте:

1.DLL c COM интерфейсом. Реализованы dual-интерфейсы с Automation-совместимыми типами данных, структур
(поддержка как раннего вывязывания,...
Аватар для bedvit
Старый
Рейтинг: 2.86. Голосов: 7.
Настройка консоли:Unicode, размер, шрифт (корректный ввод/вывод строк с кириллицей, пробелами, знаками юникода) С++
Запись от bedvit размещена 07.12.2017 в 13:15
Показов 19930 Комментарии 19
Метки c++

Простой способ больше не вспоминать о кодировках CP866, ANSI(рус.:CP1251) и костылях, типа "setlocale(LC_ALL, "Russian")" или "SetConsoleCP(1251); SetConsoleOutputCP(1251);"
Применимо (протестировано) для Microsoft Visual Studio.
В данном блоге я не буду рассматривать разные способы ввода\вывода в консоль...
Аватар для bedvit
Старый
Рейтинг: 2.71. Голосов: 7.
Хранение файлов и файловый менеджер в файле(листе) Excel, Бинарное хранение данных в CustomProperty листа Excel - VBA
Запись от bedvit размещена 31.10.2017 в 10:32
Показов 15676 Комментарии 23
Метки vba

В продолжении темы и темы.
Получилось просто и вполне удобно, решил сохранить в блоге. В дальнейшем возможно развитие, новые алгоритмы и новые версии.
Кратко: Хранение файлов и простенький файловый менеджер в файле(листе) Excel, Бинарное хранение данных в CustomProperty листа (Open FileName As Binary и Get, Put через байт-массив). Запуск с параметрами хранимых файлов.

Максимальная простота и переносимость - нет форм, модулей уровня проекта, классов...
Аватар для bedvit
Старый
Рейтинг: 3.40. Голосов: 5.
Быстрый алгоритмы поиска простых/всех делителей натурального числа (в т.ч. факторизация натурального числа)С++
Запись от bedvit размещена 18.05.2017 в 18:12
Показов 47617 Комментарии 7
Метки c++

Столкнувшись с данной тематикой, ранее как-то спокойно проходящей мимо меня, решил немного посвятить время и разобраться на уровне обычного человека (!= Перельман Г.Я.)
Итак не открою тайны, что достаточно большие числа долго раскладываются на простые большие множители,...
Аватар для bedvit
Старый
Рейтинг: 3.29. Голосов: 7.
Оптимизация производительности C#.NET (Алгоритм, Многопоточность, Debug, Release, .Net Core, .Net Native, С++)
Запись от bedvit размещена 26.03.2017 в 13:35
Показов 3983 Комментарии 2
Метки c#

Решил поделится своим небольшим опытом по оптимизации вычислений на C#.NET.
НЕ профи, палками не кидать, конструктив приветствуется!
Тестом будет служить время вычисления всех переменных в заданном диапазоне (до 100000) в уравнении x^3 + y^3 = z^3 - 1
Симметричные решения по x и y не учитываем, т.е. из вариантов х=6,у=8,z=9 и х=8,у=6,z=9 - берем один (любой).
Оборудование/Софт:
Кликните здесь для просмотра всего текста
Тип ЦП QuadCore AMD Phenom II X4 Black Edition 955, 3200 MHz (16 x 200)
...
Аватар для bedvit
Старый
Рейтинг: 3.40. Голосов: 5.
Длинная арифметика для Excel (vba) через .XLL (C#.NET, неуправляемый код)
Запись от bedvit размещена 11.08.2016 в 11:36
Показов 7190 Комментарии 2
Метки vb

Друзья, всем привет!
Для всех кто любит VBA, решил написать помощник в длинной арифметики.
Реализация через .XLL, т.е. все очень просто - устанавливается как надстройка и готово!
Или просто запускается двойным кликом.
Длинное число с математикой работает как экземпляр...
Аватар для bedvit
Новые блоги и статьи
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Nekobox - outbounds[0].transport: unknown transport type: raw
damix 01.10.2026
Фикс ошибки Правым кликом по серверу -> отладочная информация -> edit Заменить "net": "raw", на "net": "tcp", Нажать кнопку reload.
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru