Главная страница
    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-1324023715
sniknik
2011-12-16 12:21
2012.04.22
Безопастность SSL... есть ли вероятность обмана?


3-1274956779
Николай2010
2010-05-27 14:39
2012.04.22
Access+Delphi+Ado - про транзакции


15-1324302501
aka
2011-12-19 17:48
2012.04.22
поиск по списку слов.


2-1324922178
upc
2011-12-26 21:56
2012.04.22
Строковая константа больше 255 символов


15-1324153802
Юрий
2011-12-18 00:30
2012.04.22
С днем рождения ! 18 декабря 2011 воскресенье





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