Форум программистов, компьютерный форум, киберфорум
Комментарии
Войти
Регистрация
Восстановить пароль
  1. Старый комментарий
    Запись от Jack Famous размещена 20.12.2022 в 17:38 Jack Famous вне форума
  2. Старый комментарий
    BedvitCOM (библиотека COM/ActiveX) + BedvitXLL (библиотека XLL c C API Functions для Excel) С/С++
    Спасибо большое! Топовая библа и близко не имеющая аналогов!
    Тестирую новый функционал…
    Запись от Jack Famous размещена 20.12.2022 в 17:38 Jack Famous вне форума
    Обновил(-а) Jack Famous 20.12.2022 в 17:40
  3. Старый комментарий
    Аватар для Замабувараев
    Настройка консоли:Unicode, размер, шрифт (корректный ввод/вывод строк с кириллицей, пробелами, знаками юникода) С++
    Круто конечно, но никак не могу отогнать от себя мысль что Си Плас Плас вместо программ создаёт Bloatware.
    На фрибесике такой екзешник займёт полтора‐два килобайта.
    А на Си Плас Плас сколько?
    Запись от Замабувараев размещена 26.10.2022 в 19:23 Замабувараев на форуме
  4. Старый комментарий
    Аватар для bedvit
    Настройка консоли:Unicode, размер, шрифт (корректный ввод/вывод строк с кириллицей, пробелами, знаками юникода) С++
    DrOffset, Спасибо за корректировку. Все верно. Отметил этот момент в главном топике.
    Запись от bedvit размещена 26.10.2022 в 11:01 bedvit вне форума
  5. Старый комментарий
    Длинная арифметика (Bignum arithmetic) c COM-интерфейсом и C API Functions для Excel на библиотеках MPIR. С/С++
    Извините, я не заметил возраст этой записи. Почитал комментарии - тут и до меня все сказали.
    Запись от QueryMonkey размещена 24.06.2022 в 17:01 QueryMonkey вне форума
  6. Старый комментарий
    Аватар для bedvit
    Длинная арифметика (Bignum arithmetic) c COM-интерфейсом и C API Functions для Excel на библиотеках MPIR. С/С++
    QueryMonkey, для обычных чисел нужно использовать обычную арифметику, для для бОльших точностей - длинную арифметику. Дополнительные обертки кушают ресурсы, но позволяют получить нужный инструмент там, где его гет. Ваш сайт - это реклама? Для языков С++, С# можно использовать MPIR напрямую с максимальным выхлопом, вплодь до оптимизации для конкретного процессора.
    К чему ваш пост, вы читали тему? Может вы хотели донести что-то важное?
    Запись от bedvit размещена 24.06.2022 в 09:18 bedvit вне форума
  7. Старый комментарий
    Длинная арифметика (Bignum arithmetic) c COM-интерфейсом и C API Functions для Excel на библиотеках MPIR. С/С++
    СОМ несёт значительное замедление для арифметических операций, которые для обычных чисел (80-бит) исполняются очень быстро.

    Если скорость не важна, то можно веб сервисом.
    http://www.dneonline.com/calculator.asmx
    Запись от QueryMonkey размещена 24.06.2022 в 05:03 QueryMonkey вне форума
  8. Старый комментарий
    Аватар для bedvit
    BedvitCOM (библиотека COM/ActiveX) + BedvitXLL (библиотека XLL c C API Functions для Excel) С/С++
    13/06/2022 - BedvitXLL v.3.0.0.0-v.3.2.0.0
    + Новые команды меню (см. описание в теме)
    + Настраиваемое меню - теперь меню пользователь может настраивать под себя. Настройки хранятся. Можно ими делится, см. ниже.
    + Новый формат файла пользовательских настроек + всех сохранений пользователя.
    + Блок работы с VBA-кодом (хранение, выполнение, просмотр по паролю и т.д.)
    + Новый установщик (для ленивых). Надстройку можно самому поместить в папку надстроек или просто открыть как файл Excel.
    Запись от bedvit размещена 23.06.2022 в 20:43 bedvit вне форума
  9. Старый комментарий
    Аватар для bedvit
    Длинная арифметика (Bignum arithmetic) c COM-интерфейсом и C API Functions для Excel на библиотеках MPIR. С/С++
    29/04/2022 - Новая версия BedvitCOM v.2.0.0.0
    1.Класс/массив Bignum теперь может быть любого размера, а не как ранее 256 чисел. Увеличение размера происходит автоматом, в зависимости от последнего задаваемого индекса числа в массиве.
    2.В связи с этим добавлен метод BignumArraySize() - Возвращает количество чисел Bignum в созданном классе/массиве.
    3.Добавлено преобразование Bignum из Float в Integer (обратное преобразование было возможно и ранее). Метод GetToBignumInt(LONG Bignum, LONG BignumBase=10). ВАЖНО! преобразование происходит с заданной ранее точностью в битах для Float (SizeBitsSet). Без округлений, отбрасывается дробная часть. Будьте внимательнее в таких преобразованиях.
    4.Исправлен баг в выделением памяти для разных экземпляров одного и того же класса. Теперь для каждого экземпляра - свой участок памяти.
    5.Теперь деструктор класса сам очищает память (при удалении класса или завершении процедуры в VBA). Методы Clear теперь нужны только там, где нужно освободить память в действующим классе. При завершении процедуры их писать не обязательно (для VB, и для языков, где класс уничтожается при завершении процедуры - запуская деструктор).
    Запись от bedvit размещена 23.06.2022 в 20:24 bedvit вне форума
  10. Старый комментарий
    Аватар для Замабувараев
    Клеточные автоматы ч.2 - Conway's Game of Life (С++ WinAPI)
    Какой ещё такой предел количества живых клеток?
    Запись от Замабувараев размещена 10.02.2021 в 21:36 Замабувараев на форуме
  11. Старый комментарий
    Аватар для bedvit
    BedvitCOM (библиотека COM/ActiveX) + BedvitXLL (библиотека XLL c C API Functions для Excel) С/С++
    02/02/2021 - новая версия библиотеки XLL - 2.0.0.0
    Большое обновление.
    Добавлена вкладка команд и контекстное меню.
    Добавлен набор команд (описание на сайте)

    Куплен хостинг (потренируюсь в HTML и JavaScript), если будет время оформлю там видео-описание по функционалу библиотек.
    Запись от bedvit размещена 05.02.2021 в 17:36 bedvit вне форума
    Обновил(-а) bedvit 05.02.2021 в 17:39
  12. Старый комментарий
    Клеточные автоматы ч.2 - Conway's Game of Life (С++ WinAPI)
    Экспериментировал с самодельной реакцией диффузии по описанию в тексте
    Цитата:
    Сообщение от Excalibur921 Посмотреть сообщение
    Один паттерн Тьюринга,перевод гугла.
    «В этой модели есть только одно« вещество », которое играет роль пигментации,
    активатор и ингибитор. Он представлен одним числом с плавающей запятой для каждого элемента прямоугольный массив.
    и получился странный код генерирующий очень сложное поведение неких клеточных автоматов через простое правило. В проге есть анимация это процедурное построение рисунка, обходит сложные участки плоскости которые нетривиально запрограммировать.
    https://www.cyberforum.ru/open... st15099188
    Сильно меняется форма рисунков от параметров.
    float smallConcentration=0.7f;
    float setConcentrationUp=1.0f; // концентрации растворов
    float setConcentrationDn=0.7f; //
    Может там некий алгоритмический баг?
    Похоже на процедурный генератор орнаментов вышивания крестиком. Есть ли название этому алгоритму или им подобным? Может кто-то делал подобное? Искал в гугле по разным вариантам и ничего похожего. Всюду только автоматы и моды “игра жизнь”.
    Запись от Excalibur921 размещена 16.12.2020 в 14:17 Excalibur921 вне форума
  13. Старый комментарий
    Аватар для bedvit
    BedvitCOM (библиотека COM/ActiveX) + BedvitXLL (библиотека XLL c C API Functions для Excel) С/С++
    Обнаружена интересная особенность: событиями Excel делится сначала с VBA, потом с С++ (с DLL).
    Из этого вытекает следующее:
    1. Код VBA всегда будет опережать по событиям код из XLL.
    2. Это нужно учитывать в своих проектах при использовании DLL.

    В частности, в моем случае, при обработки 3х событий в VBA - открытия книги, создания новой или после сохранения книги, автоматическое подключения библиотеки СОМ в References (в для раннего связывания) будет происходить после кода VBA.

    Решением в данном случае (для VBA, который будет использовать одновременно и эти 3-и события и функционал XLL и раннее связывание) может быть следующее:
    1.(предпочтительный) Дать секунду времени для загрузки xll (для авто-подключения COM), к примеру так
    Visual Basic
    1
    
    Application.OnTime TimeValue(Now + TimeValue("0:00:01")), "Ваш_Макрос"
    2. Ручное подключение COM в References (при выключенной XLL). Такие подключения XLL не трогает и они сохраняются вместе с файлом под вашу ответственность (условия: СОМ должна быть уже зарегистрирована)
    3. Использовать при таких событиях позднее связывание вместо раннего (условия: СОМ должна быть уже зарегистрирована)
    4. Опередить XLL и самостоятельно подключить COM для раннего связывания - кодом
    Visual Basic
    1
    
    ThisWorkbook.VBProject.References.AddFromGuid "{77D79CA3-15A0-4310-B8D8-0BCBE3F72D96}", 1, 0 ' подключаем COM в References"
    (это подключение останется с файлом, как в 1-м варианте)
    Если не хотим сохранять подключение, можно кодом отключить
    Visual Basic
    1
    
    ThisWorkbook.VBProject.References.Remove ThisWorkbook.VBProject.References("BedvitCOM") 'отключаем СОМ в References
    (см. примеры использования в основной теме под спойлером)
    (условия: СОМ должна быть уже зарегистрирована)

    Лично, пользуюсь 1-м вариантом - самым простым и универсальным (для остальных решений есть определенные условия их применения, см.условия).
    Запись от bedvit размещена 26.08.2020 в 19:04 bedvit вне форума
    Обновил(-а) bedvit 21.10.2020 в 11:35
  14. Старый комментарий
    Аватар для bedvit
    BedvitCOM (библиотека COM/ActiveX) + BedvitXLL (библиотека XLL c C API Functions для Excel) С/С++
    21/08/2020 XLL версия v1.0.3.0
    Начиная с версии xll v1.0.3.0 рекомендуется использовать раннее связывание, т.к. теперь библиотека сама подключает COM в References и пользователю не нужно писать доп. код или подключать вручную COM.
    Преимуществом раннего связывания в VBA является то, что видны все методы и свойства объектов, возможность их выбора из выпадающего списка, полное описание всех свойств и методов библиотеки в обозревателе объектов (F2), а также скорость кода.
    Подключение осуществляется в открытой книге, в файле не сохраняется (не возникает ошибки подключения на другом ПК, где нет XLL).
    Запись от bedvit размещена 21.08.2020 в 13:04 bedvit вне форума
    Обновил(-а) bedvit 21.08.2020 в 13:06
  15. Старый комментарий
    Аватар для bedvit
    Быстрая реализация поиска строк в csv/txt(ANSI) файлах (WinAPI + С++)
    Случайно затер свой предыдущий комментарий, где я использовал std::unique_ptr и был не вполне им доволен.
    Цитата:
    Сообщение от bedvit Посмотреть сообщение
    Решил попробовать
    C++
    1
    2
    
        std::unique_ptr<char[]> bufPtr = std::make_unique<char[]>(1000000);
        char* newPtr = bufPtr.release() + 50;
    Бамс, bufPtr = Empty
    Семантика копирования отключена, только семантика перемещения.
    Поработать с адресной арифметикой не получится.
    Если переписать так:
    C++
    1
    
    char* newPtr = bufPtr.get() + 50;
    То вполне взлетает. Думаю, что ошибался, профит должен быть.
    Запись от bedvit размещена 07.07.2020 в 12:10 bedvit вне форума
  16. Старый комментарий
    Аватар для bedvit
    Быстрая реализация поиска строк в csv/txt(ANSI) файлах (WinAPI + С++)
    В теории да, на практике - таких машин большинство, это решающий аргумент к выбору этого алгоритма. Заказчику нет разницы алгоритм оптимизирован или компилятор хорошо оптимизирует код. Ему важно, что один exe работает быстрее чем другой на одном и том же ПК.
    Запись от bedvit размещена 03.07.2020 в 14:58 bedvit вне форума
  17. Старый комментарий
    Аватар для Avazart
    Быстрая реализация поиска строк в csv/txt(ANSI) файлах (WinAPI + С++)
    Это не реализация(в плане алгоритма) а оптимизация на конкретном компиляторе под конкретной платформой.
    В теории может быть так что есть такая машина на которой не поддерживается SSE инструкции а значит и не будет такой скорости.
    Запись от Avazart размещена 03.07.2020 в 12:40 Avazart вне форума
  18. Старый комментарий
    Аватар для bedvit
    Быстрая реализация поиска строк в csv/txt(ANSI) файлах (WinAPI + С++)
    Цитата:
    Сообщение от XLAT Просмотреть комментарий
    ну, так вы должны согласиться,
    что std::string по скорости такое же как и сишный строко-char.
    Оказалось что нет, Си-ная реализация поиска подстроки в 10 раз быстрее.
    Запись от bedvit размещена 03.07.2020 в 12:11 bedvit вне форума
  19. Старый комментарий
    Аватар для bedvit
    Быстрая реализация поиска строк в csv/txt(ANSI) файлах (WinAPI + С++)
    Цитата:
    Сообщение от bedvit Посмотреть сообщение
    Решил попробовать
    C++
    1
    2
    
        std::unique_ptr<char[]> bufPtr = std::make_unique<char[]>(1000000);
        char* newPtr = bufPtr.release() + 50;
    Бамс, bufPtr = Empty
    Семантика копирования отключена, только семантика перемещения.
    Поработать с адресной арифметикой не получится.
    Если переписать так:
    C++
    1
    
    char* newPtr = bufPtr.get() + 50;
    То вполне взлетает. Думаю, что ошибался, профит должен быть.
    Запись от bedvit размещена 03.07.2020 в 12:05 bedvit вне форума
    Обновил(-а) bedvit 07.07.2020 в 12:06
  20. Старый комментарий
    Настройка консоли:Unicode, размер, шрифт (корректный ввод/вывод строк с кириллицей, пробелами, знаками юникода) С++
    Все-таки переводить исходники в UTF-16 не нужно. Компилятор перекодирует строки, помеченные префиксом L.
    Файл в может быть спокойно в UTF-8, как общепринято.
    Запись от DrOffset размещена 28.06.2020 в 18:42 DrOffset вне форума
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru