Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.05.24;
Скачать: [xml.tar.bz2];

Вниз

Как соединить два динамических массива?   Найти похожие ветки 

 
anton20vlad   (2009-04-09 13:12) [0]

Есть массив A и есть массив B:


var
 A: Pointer;
 B: Pointer;


Размер элементов массива в памяти заранее неизвестен. Как получить массив С состоящий из всех элементов массива А, а затем из всех элементов массива В?


 
Palladin ©   (2009-04-09 13:17) [1]

никак


 
TUser ©   (2009-04-09 13:55) [2]

создать новый массив и копировать туда элементы


 
12   (2009-04-09 14:01) [3]

алгоритм как-то так
movememory с , a, length(a)
movememory с+length(a) , b, length(b)
setlength c,length(a)+length(b)


 
@!!ex ©   (2009-04-09 14:04) [4]

SetLength, Length, CopyMemory и понеслась.
Кода врядли кто даст.


 
Сергей М. ©   (2009-04-09 14:13) [5]


> Размер элементов массива в памяти заранее неизвестен


Никак.


 
Sapersky   (2009-04-09 14:20) [6]

http://www.rsdn.ru/article/Delphi/dynarrays.xml


 
Плохиш ©   (2009-04-09 14:20) [7]


> Есть массив A и есть массив B:
>
>
> var
>  A: Pointer;
>  B: Pointer;

Это в какой версии массивы переименовали в pointer?


 
test ©   (2009-04-09 14:29) [8]

var
 a,b,c:array of integer;
 count:integer;
begin
 SetLentgh(a,3);
 SetLength(b,9);
 SetLength(c,(Length(a)+Length(b)));
 for count := 0 to length(a)-1 do
   c[count] := a[count];
 for count := 0 to length(b)-1 do
   c[count+Length(a)] := b[count];
end;


 
clickmaker ©   (2009-04-09 15:02) [9]

> Размер элементов массива в памяти заранее неизвестен

в этом случае спасет только некий признак конца массива. Как в нуль-терминированных строках pchar


 
Anatoly Podgoretsky ©   (2009-04-09 15:19) [10]

> test  (09.04.2009 14:29:08)  [8]

Это ничего, что переменная цикла неопределена при выходе из цикла?


 
test ©   (2009-04-09 15:35) [11]

Anatoly Podgoretsky ©   (09.04.09 15:19) [10]
Его же for инициализирует, а так она вообщем то нигде кроме for не используется. Да и пример я не прорабатывал, можно еще например сказать, что массивы не инициализированны. Фактически пример гоняет мусор между 3-мя массивами.


 
Юрий Зотов ©   (2009-04-09 15:40) [12]

> test ©   (09.04.09 14:29) [8]

Для массивов "of integer" нужны всего 2 строчки: SetLength и Move.


 
Anatoly Podgoretsky ©   (2009-04-09 16:05) [13]


> test ©   (09.04.09 15:35) [11]

Уже вижу, все в порядке.


 
test ©   (2009-04-09 16:37) [14]

Юрий Зотов ©   (09.04.09 15:40) [12]
Я в расчете на то что будудт использовать типы String, Pointer, Object мало ли что автору нужно.


 
Плохиш ©   (2009-04-10 01:56) [15]


> test ©   (09.04.09 14:29) [8]
>
> var
>  a,b,c:array of integer;

Вообще-то у автора Pointer. Не надо приводить задания к тем, которые описаны в любой книжке для "полных чайников".


 
Германн ©   (2009-04-10 02:10) [16]


> Вообще-то у автора Pointer.

Автор просто задал "дурной" вопрос.
Если бы он описал задачу, было б проще.


 
Amoeba ©   (2009-04-10 02:12) [17]

Будем ждать возвращения автора.


 
oxffff ©   (2009-04-10 03:09) [18]


> anton20vlad   (09.04.09 13:12)  


Сделать можно через создание аналога _DynArrayCopyRange.

см. system.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.05.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.008 c
2-1239122277
Drowsy
2009-04-07 20:37
2009.05.24
Как "передать управление клавиатурой" компоненту типа TPanel?


15-1237411802
Юрий
2009-03-19 00:30
2009.05.24
С днем рождения ! 19 марта 2009 четверг


15-1237993387
Showmessage
2009-03-25 18:03
2009.05.24
Матрица


3-1221221950
ореол
2008-09-12 16:19
2009.05.24
Неправильный шрифт в таблице


3-1221025358
kaif
2008-09-10 09:42
2009.05.24
Обработка исключений ADO + MSSQL





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский