![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Присвоить массив
ply © (2011-12-28 12:13:00)Как присвоить динамическому массиву определенные значения
так не дает:
var a: array of string;
...
a:=['один','два'];
OW (2011-12-29 17:29:00) [1]
> Юрий Зотов © (29.12.11 16:58) [12]
шутка юмора? (я сегодня[зачеркнуто] туповат :))
Юрий Зотов (2011-12-29 16:58:00) [2]
> Ega23 © (29.12.11 10:24) [11]
Простой, прозрачный, понятный и компактный сишный код на Фортране.
Ega23 (2011-12-29 10:24:00) [3]
> Спасибо. Надеялся что можно как-то обойтись одной строчкой
Не надо пихать в одну строчку то, что делается двумя, но понятно.
А то потом такие уродцы возникают:
with SomeCollection.AddItem(TSomeCollectionItem.Create(dmMain.SomeDataSet.FieldByName ('SomeField').AsInteger)) do
DoSomething;
Palladin (2011-12-29 10:02:00) [4]с XE вроде документированный
MBo (2011-12-28 13:45:00) [5]Есть способ, но недокументированный, не во всех дельфях может работать, Error Insight на него ругается. Сам использую только для тестовых вещей.
type
TStringArray = array of string;
var
a: TStringArray;
...
a := TStringArray.Create('один', 'два');
Anatoly Podgoretsky (2011-12-28 13:44:00) [6]> ply (28.12.2011 13:22:06) [6]
Можно - напиши процедуру
Сергей М. (2011-12-28 13:35:00) [7]
> Надеялся что можно как-то обойтись одной строчкой
Одной никак.
Но можно двумя, если тип элементов массива относится к базовым и фундаментальным типам данных, к коим string не относится.
ply (2011-12-28 13:22:00) [8]Спасибо. Надеялся что можно как-то обойтись одной строчкой
Ega23 (2011-12-28 13:01:00) [9]
> var a: array of string;
> ...
> a:=['один','два'];
>
var
a: array of string;
begin
SetLength(a, 2);
a[0] := 'Один';
a[1] := 'Локи';
end;
Anatoly Podgoretsky (2011-12-28 12:40:00) [10]> ply (28.12.2011 12:13:00) [0]
Используй индексы
F1 + Dynamic arrays
И. Павел (2011-12-28 12:26:00) [11]> [0] ply © (28.12.11 12:13)
Как вариант напишите функцию, которая принимает первым аргументом динамический массив а вторым вариантный массив (array of const). На вход функции подавайте массив «a» и открытый конструктор ([..., ..., ... и т.д.]), а внутри функции присваивайте элементам массива значения в цикле. Если массивов array of string много и всех их нужно инициализировать константами, то получится какая-то экономия кода.
Сергей М. (2011-12-28 12:20:00) [12]поэлементно.
Медвежонок Пятачок (2011-12-28 12:20:00) [13]не дает потому что массив не может принять значение не массива.