Выбрать дату в календареВыбрать дату в календаре

Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 91 След.
MultiProcessing или хакерский менеджер процессов на VBA, Воскрешение (вторая жизнь) VBA
 
testuser, своя библиотека с хорошо продуманной реализация дело не простое (строки в т.ч.), потом поделитесь успехами. Внешний API будет?
«Бритва Оккама» или «Принцип Калашникова»?
MultiProcessing или хакерский менеджер процессов на VBA, Воскрешение (вторая жизнь) VBA
 
ZVI, Владимир, читал про Copilot, и GitHub, держу проекты в бесплатном репозитории. Весь проект трудно собрать, таким образом :) А в общем на здоровье, если кто-то соберет. Проекты не коммерческие, я сам выкладываю части кода. Это я так, относительно авторских прав поинтересовался, это же столп на котором стоит вся разработка в тех странах, в которых и создавался Copilot, и GitHub.
«Бритва Оккама» или «Принцип Калашникова»?
MultiProcessing или хакерский менеджер процессов на VBA, Воскрешение (вторая жизнь) VBA
 
Владимир, добрый вечер!
Цитата
ZVI написал:
с помощью ИИ взломать и опубликовать чей-то коммерческий код.

Цитата
ZVI написал:
ИИ тренируют на кодах из GitHub
Хм, как-то некрасиво выходит. Это же наверняка закрытые репозитории, а как же авторские права? Задумался, может, к примеру и мой проект ИИ уже старабанил :)) Хотя там столько понапилино, что что-то собрать в кучу и скомпилировать даже у меня не всегда выходит))
А вот комерческий код менеджера процессов без согласия автора, если он украден - публиковать нехорошо. Даже если автор и хвалился в этой теме, что умнее всех) Все мы когда-то это проходили, по молодости)
Изменено: bedvit - 12.12.2025 22:09:04
«Бритва Оккама» или «Принцип Калашникова»?
MultiProcessing или хакерский менеджер процессов на VBA, Воскрешение (вторая жизнь) VBA
 
Цитата
Тимофеев написал:
4. Профит психического здоровьяvba' Количество стрессовых ситуаций:Before = [ "А если файл битый?", "А если не хватит памяти?", "А если зависнет?", "А если... (список из 50 пунктов)"]After = [ "Запустил и забыл", "Система сама всё починит"]
вот это больше всего понравилось, особенно вот это "Система сама всё починит"!
«Бритва Оккама» или «Принцип Калашникова»?
MultiProcessing или хакерский менеджер процессов на VBA, Воскрешение (вторая жизнь) VBA
 
Тимофеев, что это? Исходники инструмента за 8 тыс.рублей?))
«Бритва Оккама» или «Принцип Калашникова»?
MultiProcessing или хакерский менеджер процессов на VBA, Воскрешение (вторая жизнь) VBA
 
testuser, уже что-то готово или в проекте?
«Бритва Оккама» или «Принцип Калашникова»?
MultiProcessing или хакерский менеджер процессов на VBA, Воскрешение (вторая жизнь) VBA
 
Цитата
testuser написал:
наывается ATLVBA,
testuser, расскажите кратко о проекте?
«Бритва Оккама» или «Принцип Калашникова»?
MultiProcessing или хакерский менеджер процессов на VBA, Воскрешение (вторая жизнь) VBA
 
Цитата
Zeus_0x01 написал:
поддерживающие стандарт C++, не используется системный пул,
вы плохо читаете. Выше по ссылке вы можете прочитать про то "на практике MSVC использует пул потоков, поскольку его реализация построена на основе PPL". Я пишу о своих инструментах, они у меня под Win и компилятор у меня от MSVC. Думаю, на этом вопрос закроем, т.к. вы хотите мне что-то про меня рассказать, а мне это не интересно.
Изменено: bedvit - 11.12.2025 18:28:14
«Бритва Оккама» или «Принцип Калашникова»?
MultiProcessing или хакерский менеджер процессов на VBA, Воскрешение (вторая жизнь) VBA
 
Цитата
Zeus_0x01 написал:
Так а где эти инструменты и подтверждение того, что они их и разработали? Дайте уже список пожалуйста! Я думаю не мне одному будет это интересно!
На этом форуме раньше вели раздел Копилка идей. Потом просто все выкладывали в Курилке или на своих сайтах. Проекты всех специалистов, я вам искать не буду, будет желание можете сами посмотреть на форумах или вежливо попросить у самих участников, думаю с вами поделятся.

Цитата
Zeus_0x01 написал:
Вы сами-то переходили по ссылке и читали, что там написано? Или увидели "Thread pool" и сделали вывод, что потоки автоматически тянутся из пула винды для переиспользования? Это Вы можете своих старичков прогревать на такую "дезинфу"! Где вообще сказано, что std:async переиспользует системный пул и где гарантия, что он ранее был инициализирован?
Не только читал но и использую в прикладных задачах. Сказано об этом много где, но если вы не умеете пользоваться поиском то вот, мне не сложно, к примеру https://stackoverflow.com/questions/29622179/async-uses-a-threadpool

"Согласно стандарту, std::async использование пула потоков невозможно из-за требований к локальному хранилищу потоков. Однако на практике MSVC использует пул потоков, поскольку его реализация построена на основе PPL, и они просто игнорируют требования к локальному хранилищу потоков. Другие реализации запускают новый поток для каждого вызова, std::async как того требует язык.
Как всегда, у Bartosz есть отличная статья в блоге на эту тему."

PPL я кстати тоже пользуюсь, к примеру concurrency::parallel_buffered_sort.

Цитата
Zeus_0x01 написал:
Понимание вообще есть, что такое системный пул, как он работает?
Сами сможете найти информацию? Верю в ваши силы...

Цитата
Zeus_0x01 написал:
Если здесь облажались, на вашем поле так сказать, то смысл дискутировать вообще есть?
Вижу, что смысла действительно нет, вы упорно переходите на обсуждение личности участников, с хаотично выбранными ссылками из разных тем, вместо обсуждения вашей исходной темы.
Изменено: bedvit - 11.12.2025 17:25:14
«Бритва Оккама» или «Принцип Калашникова»?
MultiProcessing или хакерский менеджер процессов на VBA, Воскрешение (вторая жизнь) VBA
 
Цитата
Zeus_0x01 написал:
bedvit , давайте по-дискутируем.
давайте попробуем.
"старички" на этом форуме - люди видавшие разное и разные решения и делавшие свои решения и применявшие их в своих прикладных задачах и как помощь новичкам. Ваше решение - это одно из многих. Его нужно правильно презентовать, если вы хотите что бы "старички" присоединились к обсуждению.  Для некоторых "старичков" VBA - не всегда профильный актив, у кого-то это хобби у кого-то просто один из инструментов-языков на котором он делает решения, в любом случае, думаю, они его знают не хуже вас. У некоторых есть свой сайт и большой пул публикаций и сообщений (на этом и других форумах) и с реальной помощью многим пользователям (и Дмитрий, Владимир, Михаил в этом списке).

Лично я, всегда с интересом просматриваю новые решения, потому что они появляются не часто (действительно стоящие решения).
И если я хочу поделится, к примеру своим, я размещаю его на форуме с предложением к рассмотрению: что получилось, плюсы и минусы. Конструктивная критика всегда в плюс - видно что нужно доработать.
Ваш подход к размещению своей информации как видите буксует.

Вы сделали свое решение, считаете что оно заслуживает самых высоких оценок и хотите быстрее его везде презентовать. Это не всегда получается по каким либо причинам и вы начинаете байт, пишите, что участвующие в обсуждении специалисты "на уровне ячеек" и ваше уникальное решение не понимают. Такое случается с решениями которые "самые уникальные, которые никто до этого не делал" и "старички" с опытом уже это не раз проходили, иногда на собственном опыте.

Вернемся к вашим планам.
Спасибо что поделились, если у вас получится все это реализовать - буду только рад за вас (это искренне).
Некоторая ложка дегтя (добавлю комментарии из своей некоторой практики):
Цитата
Zeus_0x01 написал:
RAT или система удалённого доступа на чистом VBA (отличный пример, чтобы показать, как надо проектировать и разрабатывать сложный Desktop_софт);
как пример и потренироваться - отлично! Как рабочее решение - нет.
Цитата
Zeus_0x01 написал:
Замена VBScript's.
Хотите заменить скрипты на пакет Office (т.е. для написание скриптов покупать лицензию на  Office)?
Цитата
Zeus_0x01 написал:
Контролируемый параллелизм
решение интересное и это правда. Но вот в чем дело, к примеру мне (знаю что и некоторым другим участникам форума) проще написать своё dll с "настоящей" многопоточностью. К примеру std::async забирает потоки из системного пула, а это миллисекунды, а у вас 2-3 секунды на создание процесса(ов?). Вот у меня есть задачи, где мне нужно по количеству логических ядер стартовать параллельный алгоритм. Запуск такого алгоритма на 16 ядрах в штатных инструментах - менее сотых долей секунды, в вашем инструменте (2-3) сек (на 16 экземпляров Excel? а если ядер 64, 128?). За это время у меня вся программа иногда отрабатывает и выдает результат. Ну и т.д., думаю понятно, нет смысла погружаться далее в подробности...

То, что вы это все спроектировали в работающий инструмент и добавили документацию - респект. И то что хотите - продавать эту идею - ваше право. Просто многих спецов есть свои иногда более продвинутые инструменты для подобного рода задач. Не удивляйтесь этому. Принимайте конструктивную критику - как стимул двигаться дальше.
Изменено: bedvit - 11.12.2025 10:51:55
«Бритва Оккама» или «Принцип Калашникова»?
MultiProcessing или хакерский менеджер процессов на VBA, Воскрешение (вторая жизнь) VBA
 
Александр Ефимов, жаль, что дискусию которую вы хотели, не получилась. Если бы бы вы поделились идеей зачем это нужно, возможно было бы больше желающих изучить этот инструмент. Удачи вам, я пасс.
«Бритва Оккама» или «Принцип Калашникова»?
MultiProcessing или хакерский менеджер процессов на VBA, Воскрешение (вторая жизнь) VBA
 
Александр Ефимов, могу ли я уточнить, зачем вам скидыватся на решение, которое вы не будете применять?  Узнать как это работает (в общих чертах есть на сайте разработчика, более подробно-зачем?)? Сделать свою реализацию для продажи (вам же она все равно не нужна)? Зачем покупать то, что не нужно? )
Изменено: bedvit - 10.12.2025 15:16:35
«Бритва Оккама» или «Принцип Калашникова»?
MultiProcessing или хакерский менеджер процессов на VBA, Воскрешение (вторая жизнь) VBA
 
Судя по тому, что на конкретные вопросы нет ответов, можно предположить, что эта тема как и предыдущая в курилке - просто реклама своего продукта (что в общем почему бы и нет, и да же интересно было бы узнать о реальных плюшках, если с реальными обсуждениями и нормальной подачей материала по теме) и байт на покупку с нескольких учеток под разными пользователями. А не то,что изначально заявлялось в темах, а это уже троллинг и байт. Рад буду ошибатся.
Изменено: bedvit - 10.12.2025 12:55:35
«Бритва Оккама» или «Принцип Калашникова»?
MultiProcessing или хакерский менеджер процессов на VBA, Воскрешение (вторая жизнь) VBA
 
К примеру, в Excel 2013 появился стандартный механизм создания асинхронных функций, см. Asynchronous user-defined functions, а так же уже давно реализованный механизм многопоточного пересчета (когда копии одной функции выполняются в разных потоках, да..да.. это ровно то, что в статусной строке пишется при вычислении ячеек...Потоков:..4)

И даже там можно: Асинхронные функции можно объявлять потокобезопасными, и тогда синхронная часть пользовательской функции будет использоваться при многопоточном пересчете.

Но это все для функций листа, когда есть множество ячеек для которых нужно вычислить какой-либо, иногда и одинаковый алгоритм.

VBA это больше про команды, чем про функции листа. А вот для команд намного реже (из практики) требовался многопоточный режим. ИМХО.
.
Изменено: bedvit - 10.12.2025 10:08:30
«Бритва Оккама» или «Принцип Калашникова»?
MultiProcessing или хакерский менеджер процессов на VBA, Воскрешение (вторая жизнь) VBA
 
Цитата
Александр Ефимов написал:
тогда давайте подискутируем!
Давайте попробуем. Если не секрет, поделитесь идеей, для каких прикладных задач можно использовать этот  инструмент (мультипроцессинг) в VBA? Вопрос не праздный, т.к. я давно пользуюсь мультипоточностью, но в других языках, а для VBA я не нашел задач для реализации подобного инструмента (а мысли такие были и был серьезный настрой это реализовать через свою библиотеку COM или через стандартный механизм Excel C API).
«Бритва Оккама» или «Принцип Калашникова»?
MultiProcessing или хакерский менеджер процессов на VBA, Воскрешение (вторая жизнь) VBA
 
Александр Ефимов, а вы не знакомы с Senaki? В предыдущей теме, здесь в курилке, он говорит об этом решении как об инфоциганском, пробивающем дно.
Изменено: bedvit - 09.12.2025 10:17:21
«Бритва Оккама» или «Принцип Калашникова»?
[ Закрыто] Инфоцыгане пробивают дно или это норма?, Платные библиотеки для vba
 
Не это ли решение здесь фигурирует в ответе?
Изменено: bedvit - 09.12.2025 10:18:16
«Бритва Оккама» или «Принцип Калашникова»?
Табличный редактор на Rust с помощью ИИ кодеров, Домашний проект создания свовего excel на быстром языке rust
 
Borisovich, ваша таблица хорошо переваривает 500-1000 столбцов? а 16 тыс., как в Excel сможет загрузить (пусть и одну лишь строку)? По опыту штатные инструменты WinApi с этим плохо справляются, а это обычно основа стандартного контрола под Win, если не используют свою реализацию.
«Бритва Оккама» или «Принцип Калашникова»?
Табличный редактор на Rust с помощью ИИ кодеров, Домашний проект создания свовего excel на быстром языке rust
 
Свой Excel это сложно назвать, но есть подпиленный WinApi ListViev для массивов COM SafeArray (VT_ARRAY | VT_VARIANT).


Умеет:
+Показывать данные из массива в форме с помощью WinApi ListViev с возможностью редактирования строк и заголовка
+Сортировать
+Фильтровать
+Транспонировать
+Сериализовать данные в файл
+Десериализовать данные из файла
+Шифровать данные
+Выгружать на лист Excel
+Загружать данные с листа Excel
+Дозагружать данные с листа Excel
+Выгружать данные в новую или уже существующую сводную таблицу.
+Добавлять новые строки
+Копировать строки
+Удалять строки
+Перемещать строки
+Добавлять новые столбцы
+Копировать столбцы
+Удалять столбцы
+Перемещать столбцы
+Растягивать столбцы
+Копировать строки в буфер обмена
+Откатывать к сохраненному состоянию.

Особенности:
+Максимальное количество строк: 100 000 000
+Максимальное количество столбцов: через Excel C API xltypeMulti - максимум 65536 столбцов, через COM - тестировал 1 000 000 - работает, больше - не тестировал.
+Работает довольно шустро, т.к. данными и отрисовкой занимается сам, а не штатный WinApi ListViev.
+Для заголовка есть всплывающая подсказка с индексом столбца в текущем представлении с учетом перетаскивания столбца и индексом, который был первоначально у столбца при загрузки массива и сам текст заголовка.
+Для строк есть всплывающая подсказка, если текст не помещается полностью в ячейку - показывается полный текст ячейки в подсказке.
+Написан на C/С++
Изменено: bedvit - 07.12.2025 12:44:30
«Бритва Оккама» или «Принцип Калашникова»?
Инструменты для работы с массивами (XLL, COM): ListViev
 
Добавлен инструмент в COM (максимальное количество строк - 100 000 000, столбцов - точно не знаю, 1 000 000 загружается нормально, больше не тестировал)
Сделана возможность отката к сохраненному состоянию.


Код
Option Explicit

Sub Test_XLLcmdDataGridView()

    Dim row, col, arrOut, x
    Dim sizeRow As Long: sizeRow = 65536
    Dim sizeCol As Long: sizeCol = 20
    Dim arrIn: ReDim arrIn(0 To sizeRow, 1 To sizeCol) 'первоначальный массив данных, далее заполняем рандомно (sizeRow=0-заголовок)
   
    'заполняем первоначальный массив с данными
    For row = 0 To sizeRow '0-заголовок
        For col = 1 To sizeCol
            arrIn(row, col) = row + col
        Next
    Next

    'XLL
    'передача массива СОМ через указатель
    'arrOut = Application.RUN("XLLcmdDataGridView", 0, , Array("VarPtr", VarPtr(arrIn)))
    
    'передача массива СОМ через  стандартный механизм Excel C API (xltypeMulti, максимум 65536 столбцов)
    arrOut = Application.RUN("XLLcmdDataGridView", 0, , arrIn)

    'COM - изменение на месте
    Dim bVBA As Object: Set bVBA = CreateObject("BedvitCOM.VBA") 'позднее связывание
    bVBA.DataGridView arrIn

End Sub


Надстройку (с COM.dll) можно бесплатно скачать здесь.
Изменено: bedvit - 04.12.2025 21:56:54
«Бритва Оккама» или «Принцип Калашникова»?
Генерация QR кодов в эксель
 
Локальная генерация, один из вариантов.
«Бритва Оккама» или «Принцип Калашникова»?
Инструменты для работы с массивами (XLL, COM): ListViev
 
Добавился новый функционал.

Столбцы можно переименовывать, перемещать (можно попробовать ретягивать мышкой на нужное место), удалять, добавлять, копировать, изменять размер.
Данные можно загружать из Excel и выгружать обратно. Есть возможность копировать в буфер обмена.
Можно фильтровать, можно сортировать.
См. видео


Можно загружать массивы из VBA (через C API Excel), обрабатывать в DataGridView и выгружать обратно в VBA, см. код
Код
Option Explicit

Sub Test_XLLcmdDataGridView()
    Dim row, col, arrOut

    Dim sizeRow As Long: sizeRow = 10
    Dim sizeCol As Long: sizeCol = 1
    Dim arrIn: ReDim arrIn(1 To sizeRow, 1 To sizeCol) 'первоначальный массив данных, далее хаполняем рендомно
   
    'заполняем первоначальный массив с данными
    For row = 1 To sizeRow
        For col = 1 To sizeCol
        arrIn(row, col) = row + col
        Next
    Next

    'получаем обработанный в XLLcmdDataGridView массив arrOut
    arrOut = Application.RUN("XLLcmdDataGridView", 0, , arrIn)

End Sub

См. видео



Для больших массивов (миллионы строк) можно настроить загрузку через COM.

Библиотеку залил в бета-версию. Кому интересно можно бесплатно скачать и пользоваться.
Изменено: bedvit - 20.11.2025 00:36:19
«Бритва Оккама» или «Принцип Калашникова»?
Многопоточность в VBA
 
Сложность реализации сторонней многопоточной библы в том, как передать туда алгоритм, который должен выполнятся в потоках.
Предположем у нас есть массив с которым надо что то сделать. Передать массив, выделить потоки, посчитать сколько элементов в какой поток пойдет не вопрос. Сложность передать алгоритм, что делать с этими элементами ,в каком виде он будет? Ну и плюс не все алгоритмы можно эффективно распараллелить, но эту другой вопрос. Предположим алгоритм хорошо параллелится.
Изменено: bedvit - 24.09.2025 20:53:25
«Бритва Оккама» или «Принцип Калашникова»?
Многопоточность в VBA
 
testuser, а что должно быть в многопоточной функции из сторонней библиотеки, что бы она была нужна в VBA?
«Бритва Оккама» или «Принцип Калашникова»?
Многопоточность в VBA
 
testuser, не уловил мысль, поделитесь более подробной информацией, как это поможет при реализации многопоточности через СОМ библиотеку или другими методами?
«Бритва Оккама» или «Принцип Калашникова»?
Многопоточность в VBA
 
Цитата
nilske написал:
evgeniygeo , решение  платное , а ссылка секретная ))
прочитал с интересом тему. Судя по всему, товарищ проиграл другу.
Цитата
testuser написал:
биг-дату какую-нить пообрабатывать
У меня есть свои инструмент на С++ типа параллельный FOR, для любого количества передаваемых массивов (сам вычисляет количество потоков, под ядра ЦП, сам разбивает массивы на нужные блоки, сам обрабатывает ошибки и исключения и т.д.). Его можно упаковать в СОМ, но как прикрутить динамически изменяемую логику для обработки этих массивов из VBA в С++ я не знаю. Т.е. то что будет выполнятся в потоках, и пользователь на VBA сам указывал что. Передавать указатель на функцию - сомневаюсь, что интерпретатор VBA сможет обрабатывать параллельно функции если их вызвать из С++.  Можно сделать парсинг строки с каким то набором операторов, типа создать свой скриптовый язык... нужно ли это и стоит ли это таких усилий, кажется, что нет
Изменено: bedvit - 23.09.2025 09:49:07
«Бритва Оккама» или «Принцип Калашникова»?
Многопоточность в VBA
 
Цитата
AltцGamer написал:
Он утверждает, что такую библиотеку сложно реализовать на VBA
Он прав.

testuser, а для каких задач на VBA нужна многопоточность?
«Бритва Оккама» или «Принцип Калашникова»?
Многопоточность в VBA
 
В VBA можно зарустить ассинхронные процедуры, но сам VBA не поддерживает многопотосность.
«Бритва Оккама» или «Принцип Калашникова»?
Многопоточность в VBA
 
https://www.planetaexcel.ru/forum/?PAGE_NAME=read&FID=1&TID=120692
«Бритва Оккама» или «Принцип Калашникова»?
Инструменты для работы с массивами (XLL, COM): ListViev
 
Добавил возможность выгружать данные в новую или уже существующую сводную таблицу.
Давайте попробуем выгрузить  в сводную таблицу 100 000 000 строк...

Изменено: bedvit - 22.08.2025 15:46:32
«Бритва Оккама» или «Принцип Калашникова»?
Страницы: 1 2 3 4 5 6 7 8 9 10 11 ... 91 След.
Наверх