Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.003 c
15-1323898980
ffff
2011-12-15 01:43
2012.04.22
Напомните, плиз, о гениальных изобретениях ближайшего прошлого :)


2-1325071675
Plast
2011-12-28 15:27
2012.04.22
Програмно узнать все интерфейсы объекта.


15-1324204018
oldman
2011-12-18 14:26
2012.04.22
Не хватает снега?


15-1323861558
картман
2011-12-14 15:19
2012.04.22
зима пришла...


2-1324826113
Pcrepair
2011-12-25 19:15
2012.04.22
idHTTP1 и закачка стр. из ЯНДЕКС.ру





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский