Правильная конкатенация18.04.2023, 02:34. Показов 6617. Ответов 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
|
||||||
|
Вернулся
1754 / 650 / 45
Регистрация: 10.09.2021
Сообщений: 2,807
|
|
| 09.04.2024, 13:16 | |
|
Молодцы
0
|
|
| 09.04.2024, 14:30 [ТС] | ||||||||
|
Jack Famous, интересный результат, но маппинг может быть быстрей, если один раз замапить массив, допустим задеклареный глобально, а при последующих его использованияз просто менять указатель на данные (в структуре) в .pvData и размер в .Bounds.cCount. Структура также должна быть задекларера глобально.
Добавлено через 7 минут А вижу, у тебя структура в статике, просто я код без отступов слабо понимаю, но надо еще массив в статик или глобалку поместить, чтобы CopyMemory не дергать каждый раз, тогда вообще будет хорошо. Добавлено через 48 минут
2
|
||||||||
|
Вернулся
1754 / 650 / 45
Регистрация: 10.09.2021
Сообщений: 2,807
|
|
| 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
|
|||||||
|
Вернулся
1754 / 650 / 45
Регистрация: 10.09.2021
Сообщений: 2,807
|
|
| 09.04.2024, 15:26 | |
|
testuser2 просто умничка)))
0
|
|
| 09.04.2024, 15:38 | |
|
testuser2, ты пробовал?
Потому что я что-то похожее и делал, но не вышло.
0
|
|
|
Вернулся
1754 / 650 / 45
Регистрация: 10.09.2021
Сообщений: 2,807
|
|
| 09.04.2024, 15:40 | |
|
Если долго мучиться что-нибудь получится!
0
|
|
| 09.04.2024, 17:21 [ТС] | |||
|
Добавлено через 53 минуты С указателями я думаю вопрос ясный, мне больше интересен, другой вопрос, как быстро получить ссылку на данные в таблице Эксель. Я кстати провел недавно такой эксперимент, в программе ArtMoney нашел указатель на одну из ячеек (по введенному значению), в vba скопировал это значение по указателю в переменную (типа Double). Затем записал по указателю другое значение после чего в ячейке значение изменилось. Вообще на листе было 4 заполненных ячеек, 3 из которых оказались расположены в памяти рядом в одном массиве с ячейкой 8 байт (Double), а вот значения из первой ячейки ("A1") почему-то там не оказалось.
2
|
|||
|
Вернулся
1754 / 650 / 45
Регистрация: 10.09.2021
Сообщений: 2,807
|
|
| 09.04.2024, 17:54 | |
|
0
|
|
| 09.04.2024, 17:54 | |
|
конкатенация строк в excel через vba Конкатенация и последующее копирование уникальных строк по условию Добавление записей массива из одной книги на лист другой + возможная конкатенация Из символов одного текста с помощью стоковых функций о операция конкатенация получить другой текст Конкатенация Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
|
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
|
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ
Основная суть и тезисы по измерениям:
0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема.
Объект не может перемещаться в 0D.
1D (Первое измерение):. . .
|
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek
ВВЕДЕНИЕ
Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
|
|
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
|
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2.
Задача:
Обеспечить запись документа в регистр сведений независимо от. . .
|
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется.
Ну как вам?
|
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания
источниках данных и элементов формы(текстовые поля и метки), опирается все
это на технологию событий и мета. . .
|