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

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

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

Функционал:
+ Сохранять данные из VARIANT в файл
+ Загружать данные из файла в VARIANT
+ Шифровать данные...
Аватар для bedvit
Старый
Рейтинг: 3.00. Голосов: 6.
Шифрование данных на листе Excel, в XLL, в COM (на примере VBA)
Запись от bedvit размещена 25.01.2024 в 17:26
Показов 5858 Комментарии 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
Показов 4584 Комментарии 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
Показов 2304 Комментарии 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
Показов 1827 Комментарии 0
Метки c, c++

Инструмент позволяющий хранить VBA код в XLL и его выполнять.
Часть библиотеки BedvitXLL
Как работает: Сохраняем VBA-код в форме (см.скрин), делимся сохранением .bin с коллегами, заказчиками и т.д. (у них тоже должна стоять .xll). Они смогут использовать весь функционал, но не смогут посмотреть код без пароля.
...
Аватар для bedvit
Старый
Рейтинг: 3.40. Голосов: 5.
Быстрое преобразование размерности массива в COM без потери данных.
Запись от bedvit размещена 11.08.2021 в 13:30
Показов 3600 Комментарии 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
Показов 5071 Комментарии 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
Показов 6074 Комментарии 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
Показов 2957 Комментарии 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
Показов 8267 Комментарии 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
Показов 35847 Комментарии 0
Метки , 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
Показов 3983 Комментарии 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
Показов 52339 Комментарии 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
Показов 10945 Комментарии 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
Показов 5039 Комментарии 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
Показов 7364 Комментарии 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
Показов 26495 Комментарии 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
Показов 19877 Комментарии 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
Показов 15632 Комментарии 23
Метки vba

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

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

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

Друзья, всем привет!
Для всех кто любит VBA, решил написать помощник в длинной арифметики.
Реализация через .XLL, т.е. все очень просто - устанавливается как надстройка и готово!
Или просто запускается двойным кликом.
Длинное число с математикой работает как экземпляр...
Аватар для bedvit
Новые блоги и статьи
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru