![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как правильно копировать динамические масивы?
Alek_1 © (2004-11-09 01:22:00)SetLength(Viborka.m_raion,Length(m_sp_raion_sel));
Viborka.m_raion:=Copy(m_sp_raion_sel[0],1,Length(m_sp_raion_sel));
выдает ошибку (, несоответствие типов.
и тот и другой масив типа
array of string;
Defunct (2004-11-10 06:44:00) [1]TUser © (09.11.04 09:48) [8]
> Это медленнее, чем копирование блока памяти сразу.
IMHO те же грабли вид сбоку
Массивы выровняны, что
Rep MovsD, (CopyMemory)
что (копирование циклом)
L1:
Mov EAx, [Edx]
Mov [EBx], EAx
Sub ECx, 4
Jns L1
По скорости практически одно и тоже.
IMHO просто копирование в цикле имеет, как бы это сказать "более Паскалевский вид", прозрачнее для понимания.
Германн (2004-11-10 05:28:00) [2]Кажись, у "модератора" тогда что-то болело. Скорее всего болели зубы! Мои соболезнования!
И искренне желая вышеупомянутому скорейшего избавления от вышеназванного, стремлюсь лишь восстановить оригинальную цитату из "Золотого теленка":
"Прочтя в черноморской вечерке объявление: "Сд. пр. ком. в. уд. в. н. м. од. ин. хол.", и мигом сообразив, что объявление это означает - "Сдается прекрасная комната со всеми удобствами и видом на море одинокому интеллигентному холостяку", Остап подумал: "Сейчас я, кажется, холост. Еще недавно старгородский загс прислал мне извещение... и т.д.
А TUser © (09.11.04 09:48) [8] все понял правильно. И с юмором.
Но неверно процитировал оригинал.
TUser (2004-11-09 09:48:00) [3]
> Я бы сделал обычный цикл.
Это медленнее, чем копирование блока памяти сразу. Я делаю через CopyMemory.
> че на скоращал???
'сд.пр.к.с.вс.уд.и.в.на м.од.инт.хол' - прочитав это и мигом сообразив, что сие означает 'Сдается прекрасная комната со всеми удобствами и видом на море одинокому интеллегентному холостяку', Остап подумал: 'Сейчас я кажется холост'
(C)
Германн (2004-11-09 03:59:00) [4]Удалено модератором
Stexen (2004-11-09 03:53:00) [5]Удалено модератором
Германн (2004-11-09 03:52:00) [6]Удалено модератором
Stexen (2004-11-09 03:42:00) [7]Удалено модератором
Германн (2004-11-09 03:33:00) [8]А чем плоха старая, добрая Move?
Defunct (2004-11-09 03:26:00) [9]стремно как-то.
Я бы сделал обычный цикл.
SetLength( Array2, Length( Array2 ) );
for i:=0 to Length(Array1)-1 do Array2[i] := Array1[i];
GuAV (2004-11-09 01:33:00) [10]Alek_1 (09.11.04 1:22)
SetLength(Viborka.m_raion,Length(m_sp_raion_sel));
Viborka.m_raion:=Copy(m_sp_raion_sel[0],1,Length(m_sp_raion_sel));
Вместо всего этого:
Viborka.m_raion:=Copy(m_sp_raion_sel);