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