Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.04.22;
Скачать: CL | DM;

Вниз

Присвоить массив   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.007 c
2-1324724185
igorium
2011-12-24 14:56
2012.04.22
ShellTreeView - мультивыбор и рефреш


15-1324319659
KilkennyCat
2011-12-19 22:34
2012.04.22
Че-то мне так много девушек пишет


15-1324326603
Юрий
2011-12-20 00:30
2012.04.22
С днем рождения ! 20 декабря 2011 вторник


2-1325099067
ghjtyu21
2011-12-28 23:04
2012.04.22
змейка


2-1324817661
Евгений07
2011-12-25 16:54
2012.04.22
Ошибка Length(s);