Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.08.2011, 00:25   #1
alexprey
Форумчанин
 
Регистрация: 25.05.2010
Сообщений: 169
По умолчанию Склеивание массивов

В общем проблема в следующем. Есть N-ое кол-во массивов записей. Мне нужно их склеить в 1 большой массив. Копировать каждый элемент по отдельности с помощью for как то не очень быстро по моему. Есть какой нибудь более быстрый способ?
alexprey вне форума Ответить с цитированием
Старый 19.08.2011, 00:34   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

приведу на примере array of integer(кстати помните что ваша структура не должна иметь ссылочных/указательных членов)
Код:
var a,b,c:array of integer;
begin
 //заполняем массивы a и b.
 SetLength(c,Length(a)+Length(b));
 CopyMemory(@c[0],@a[0],Length(a)*sizeof(integer));
 CopyMemory(@c[Length(a)],@b[0],Length(b)*sizeof(integer));
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 19.08.2011, 11:55   #3
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

можно на ASM, при помощи цепочечных команд.
А есть какие-нибудь доказательства низкой производительности поэлементого присваивания элементов массива? На мой вгляд, даже если использовать Move, то посмотрев исходный код этой процедуры, мы увидим то самый For.
Я думаю что отладка и сопровождение этого кода не стоит незначительного увелечения производительности, учитывая то, что и так на Delphi пишешь.
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Старый 19.08.2011, 13:28   #4
alexprey
Форумчанин
 
Регистрация: 25.05.2010
Сообщений: 169
По умолчанию

chertovich, да дествительно Move тот же for.
alexprey вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
склеивание Dimarik Общие вопросы C/C++ 3 15.09.2009 13:58
Склеивание звуков varvara16 Мультимедиа в Delphi 24 14.11.2008 18:24
Склеивание массивов в паскале. TheKnyazz Паскаль, Turbo Pascal, PascalABC.NET 4 04.11.2008 13:09
склеивание форм blackstersl Общие вопросы Delphi 1 29.10.2008 19:16
Склеивание изображений Geracle Мультимедиа в Delphi 10 01.10.2008 16:45