Правильная конкатенация18.04.2023, 02:34. Показов 7252. Ответов 117
Метки нет (Все метки)
На другом форуме видел такой вариант конкатенации большого массива и он мне очень понравился, поскольку скорость близкая к join. На сколько я знаю тип String это структура содержащая в себе массив символов и еслиб у нас был доступ к этому массиву и возможность делать что-то вроде redim preserve.. В общем, можно ли как-то улучшить алгоритм, чтоб закасматить окончательно етот join? )
0
|
||
| 18.04.2023, 02:34 | |
|
Ответы с готовыми решениями:
117
Из символов одного текста строковых функций о операций конкатенация получить другой текст Правильная обработка ошибок конкатенация строки |
| 09.04.2024, 11:25 | |
|
0
|
|
| 09.04.2024, 11:35 [ТС] | |
|
Jack Famous, в том примере, при отладке можешь увидеть, как массив iText() заполняется кодами.. под x64 я сказал что переделать.
Добавлено через 4 минуты "Заполняется" не правильный термин, фактически массив начинает сслаться на буфер строки, который фактически тоже является массивом в общем понимании.
1
|
|
| 09.04.2024, 11:46 | ||||||
|
testuser2, не взлетает
Код
0
|
||||||
| 09.04.2024, 12:11 [ТС] | |||||||
|
Добавлено через 3 минуты ArrPtr в VBA тоже
0
|
|||||||
| 09.04.2024, 12:17 | |
|
testuser2, блин — сложно показать всё целиком? То не так, это не то, это забудь, а вот тут добавь…
Я уже собрал листинг — поправь, пожалуйста, чтобы заработало под VBA на x64 (Win + Office).
0
|
|
| 09.04.2024, 12:46 [ТС] | |||
|
Добавлено через 9 минут
2
|
|||
| 09.04.2024, 13:11 | ||||||
|
testuser2, благодарю!
Пока так. До 220 символов преобразование в байтовый массив и цикл по нему с вычислением AscW — быстрее. После уже начинает выигрывать копирование памяти
1
|
||||||
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
|
| 09.04.2024, 13:16 | |
|
Молодцы
0
|
|
| 09.04.2024, 14:30 [ТС] | ||||||||
|
Jack Famous, интересный результат, но маппинг может быть быстрей, если один раз замапить массив, допустим задеклареный глобально, а при последующих его использованияз просто менять указатель на данные (в структуре) в .pvData и размер в .Bounds.cCount. Структура также должна быть задекларера глобально.
Добавлено через 7 минут А вижу, у тебя структура в статике, просто я код без отступов слабо понимаю, но надо еще массив в статик или глобалку поместить, чтобы CopyMemory не дергать каждый раз, тогда вообще будет хорошо. Добавлено через 48 минут
2
|
||||||||
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
|
| 09.04.2024, 14:33 | |
|
Молодцыtestuser2, умница
0
|
|
| 09.04.2024, 14:47 | |||||||
|
Код
Немного ускорил StrToArr_API за счёт однократного вычисления указателя и длины. Также, сделал более специальные версии CopyMemory и ArrPtr. Вынести Integer-массив в глобаль не вышло. Я считаю (безосновательно, на уровне чуйки), что весь обвес в виде SAFEARRAY1D не нужен для этой задачи. Наверняка, можно либо совсем без него, либо облегчить. В общем, нам нужен The_Trick, я считаю ![]()
0
|
|||||||
| 09.04.2024, 15:25 [ТС] | |||||||
0
|
|||||||
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
|
| 09.04.2024, 15:26 | |
|
testuser2 просто умничка)))
0
|
|
| 09.04.2024, 15:38 | |
|
testuser2, ты пробовал?
Потому что я что-то похожее и делал, но не вышло.
0
|
|
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
|
| 09.04.2024, 15:40 | |
|
Если долго мучиться что-нибудь получится!
0
|
|
| 09.04.2024, 17:21 [ТС] | |||
|
Добавлено через 53 минуты С указателями я думаю вопрос ясный, мне больше интересен, другой вопрос, как быстро получить ссылку на данные в таблице Эксель. Я кстати провел недавно такой эксперимент, в программе ArtMoney нашел указатель на одну из ячеек (по введенному значению), в vba скопировал это значение по указателю в переменную (типа Double). Затем записал по указателю другое значение после чего в ячейке значение изменилось. Вообще на листе было 4 заполненных ячеек, 3 из которых оказались расположены в памяти рядом в одном массиве с ячейкой 8 байт (Double), а вот значения из первой ячейки ("A1") почему-то там не оказалось.
2
|
|||
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
|
| 09.04.2024, 17:54 | |
|
0
|
|
| 09.04.2024, 17:54 | |
|
конкатенация строк в excel через vba Конкатенация и последующее копирование уникальных строк по условию Добавление записей массива из одной книги на лист другой + возможная конкатенация Из символов одного текста с помощью стоковых функций о операция конкатенация получить другой текст Конкатенация Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы.
Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
|
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|