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

Инструмент позволяющий хранить VBA код в XLL и его выполнять.
Часть библиотеки BedvitXLL
Как работает: Сохраняем VBA-код в форме (см.скрин), делимся сохранением .bin с коллегами, заказчиками и т.д. (у них тоже должна стоять .xll). Они смогут использовать весь функционал, но не смогут посмотреть код без пароля.
...
Аватар для bedvit
Старый
Рейтинг: 3.40. Голосов: 5.
Быстрое преобразование размерности массива в COM без потери данных.
Запись от bedvit размещена 11.08.2021 в 13:30
Показов 3242 Комментарии 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
Показов 4555 Комментарии 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
Показов 5587 Комментарии 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
Показов 2628 Комментарии 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
Показов 7433 Комментарии 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
Показов 33921 Комментарии 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
Показов 3525 Комментарии 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
Показов 50800 Комментарии 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
Показов 10249 Комментарии 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
Показов 4664 Комментарии 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
Показов 6817 Комментарии 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
Показов 23701 Комментарии 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
Показов 19082 Комментарии 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
Показов 14545 Комментарии 23
Метки vba

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

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

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

Друзья, всем привет!
Для всех кто любит VBA, решил написать помощник в длинной арифметики.
Реализация через .XLL, т.е. все очень просто - устанавливается как надстройка и готово!
Или просто запускается двойным кликом.
Длинное число с математикой работает как экземпляр...
Аватар для bedvit
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru