powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как скопировать часть дин.массива?
9 сообщений из 9, страница 1 из 1
Как скопировать часть дин.массива?
    #40054449
LiYing
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
type
  TPath = array of TPoint;
  TPaths = array of TPath;

var
  path: TPath;
  paths_norm, paths_dash: TPaths;

// в качестве примера, массив из 100 точек:
  SetLength(path, 100); 
  for var i := 0 to 99 do begin
    path[i].X := i;
    path[i].Y := i;
  end;


Подскажите, пожалуйста, как теперь каждый нечетный десяток точек из path добавить в paths_norm , а четный - в paths_dash ? Чтобы в каждом из них было по пять TPath из 10 точек.
Попытался было использовать DynArrayCopyRange(paths_norm[0], path[0], tkDynArray, 0, 9), но получаю ошибки:
авторE2033 Types of actual and formal var parameters must be identical
E2010 Incompatible types: 'Pointer' and 'TTypeKind'
...
Рейтинг: 0 / 0
Как скопировать часть дин.массива?
    #40054468
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LiYing
Попытался было использовать DynArrayCopyRange(paths_norm[0], path[0], tkDynArray, 0, 9), но получаю ошибки: E2033 Types of actual and formal var parameters must be identical E2010 Incompatible types: 'Pointer' and 'TTypeKind'
А просто Copy не работает разве? В новых делфях, к слову, в массивах работает конкатенация ('+'). Судя по коду у тебя новая среда.
...
Рейтинг: 0 / 0
Как скопировать часть дин.массива?
    #40054469
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. пробежаться по всему массиву PATH
2. выяснить к какому десятку относится текущий элемент массива
3. добавить элемент в paths_norm или paths_dash в зависимости от предыдущего пункта
...
Рейтинг: 0 / 0
Как скопировать часть дин.массива?
    #40054556
LiYing
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
makhaon
В новых делфях, к слову, в массивах работает конкатенация ('+'). Судя по коду у тебя новая среда.

Delphi 10.4.2. Можно примерчик как конкатенировать с +?
Попробовал
Код: pascal
1.
paths_norm := paths_norm + Copy(path, 0, 9);

и получил:
авторE2010 Incompatible types: 'TPaths' and 'TPath'
...
Рейтинг: 0 / 0
Как скопировать часть дин.массива?
    #40054586
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LiYing
Код: pascal
1.
2.
3.
type
  TPath = array of TPoint;
  TPaths = array of TPath;

Вам реально нужен массив массивов?
...
Рейтинг: 0 / 0
Как скопировать часть дин.массива?
    #40054597
LiYing
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_Vasilisk_
Вам реально нужен массив массивов?

Да. Это параметр функции сторонней библиотеки.
...
Рейтинг: 0 / 0
Как скопировать часть дин.массива?
    #40054606
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LiYing>Подскажите, пожалуйста, как теперь каждый нечетный десяток точек из path добавить в paths_norm, а четный - в paths_dash? Чтобы в каждом из них было по пять TPath из 10 точек.


Что вы страдаете, используйте обычный цикл.
...
Рейтинг: 0 / 0
Как скопировать часть дин.массива?
    #40054632
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LiYing
makhaon
В новых делфях, к слову, в массивах работает конкатенация ('+'). Судя по коду у тебя новая среда.

Delphi 10.4.2. Можно примерчик как конкатенировать с +?
Попробовал
Код: pascal
1.
paths_norm := paths_norm + Copy(path, 0, 9);

и получил:
авторE2010 Incompatible types: 'TPaths' and 'TPath'

paths_norm := paths_norm + [Copy(path, 0, 9)];
...
Рейтинг: 0 / 0
Как скопировать часть дин.массива?
    #40054635
LiYing
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
makhaon,

Тьфу ты, скобки!.. Спасибо.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Как скопировать часть дин.массива?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]