![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как одной строкой заполнить TStringList [D7, WinXP]
logslava © (2006-07-11 15:52:00)Есть ли форма записи, которая позволяла бы одной строкой з
заполнить TStringList, что нибудь в таком духе
TStingList.AddStrings('111', '222', '333');
?
Шпиён (2006-07-20 14:00:00) [1]
> ZeroDivide © (20.07.06 13:49) [14]
Тогда уж
SL.CommaText:='"12 3","45,6","789"';
When assigning CommaText, the value is parsed as SDF formatted text. For SDF format, strings are separated by commas or spaces, and optionally enclosed in double quotes. Double quote marks that are part of the string are repeated to distinguish them from the quotes that surround the string.
> Джо © (20.07.06 13:51) [15]
Угу...
пока писал ответ, ветка уплыла из "основной" в начинающих -)
Palladin (2006-07-20 14:00:00) [2]
> ZeroDivide © (20.07.06 13:49) [14]
Лично мне использование CommaText не кажется очень удобным, я им пользуюсь лишь когда необходимо передать TStringList куда то во "вне" и в том "вне" опять же назначить другому TStringList. Удобно когда строк 5-6, не содержащих спец символы "и ,, но обычно для такого количества фиксированных строк я TStringList не завожу :)
Функция, предложенная Игорем, очень и очень удобна и более гибка, бо не всегда приходится инициализировать TStringList именно строкой-константок, иногда приходится и массивом строк. Иногда PChar... CommaText же, частное решение, приводящее к большим заморочкам для программиста на куче строк-констант... как бы в кавычках и запятых не запутаться...
Джо (2006-07-20 13:51:00) [3]> [14] ZeroDivide © (20.07.06 13:49)
> ДА... мастера, блин
>
> SL.CommaText := '111, 222, 333';
Еще придется квотить, в общем случае.
ZeroDivide (2006-07-20 13:49:00) [4]ДА... мастера, блин
SL.CommaText := '111, 222, 333';
Rater1 (2006-07-12 07:08:00) [5]TStingList.LoadFromFile('c:\Items.txt');
:-)
logslava (2006-07-11 16:15:00) [6]thanks and respect to all
Игорь Шевченко (2006-07-11 16:10:00) [7]
> const MyArray = ['a','s','d']
const
MyArray: array[1..3] of string = ('a','s','d');
logslava (2006-07-11 16:08:00) [8]Спасибо всем..
Может тогда по горячим следам: как описать массив констант?
const MyArray = ['a','s','d']
Джо (2006-07-11 16:07:00) [9]Ну, или со свойством:
ListBox1.Items.Text := '123'#13#10'456'#13#10'789';
Джо (2006-07-11 16:06:00) [10]> [6] logslava (11.07.06 16:04)
> [4] не подходит для заполнения ЛистБокса
Тогда подойдет вот это:
ListBox1.Items.SetText('123'#13#10'456'#13#10'789');
:)
Джо (2006-07-11 16:05:00) [11]> [5] Dmitrij_K (11.07.06 16:00)
> Это будет одна строка
Точно. Запамятовал :) Тогда так:
StrLst.SetText('123'#13#10'456'#13#10'789');
logslava (2006-07-11 16:04:00) [12][3] спасибо, это ясно
[4] не подходит для заполнения ЛистБокса
MyList.Add('a'#13#10'b');
ListBox1.Items:=MyList; //выводит в одну строчку: a||b
Dmitrij_K (2006-07-11 16:00:00) [13]
> Еще вариант:StrLst.Add ('123'#13#10'234'#13#10'hdsjfsdfhj');
Это будет одна строка
Джо (2006-07-11 15:59:00) [14]Еще вариант:
StrLst.Add ('123'#13#10'234'#13#10'hdsjfsdfhj');
Джо (2006-07-11 15:58:00) [15]Добавление к [1] Игорь Шевченко ©.
Только вызов метода будет таким
AddStrings(StrLst, ['111', '222', '333']);
logslava (2006-07-11 15:57:00) [16]спасибо.
вариант
Игорь Шевченко (2006-07-11 15:54:00) [17]написать строчку:
procedure AddStrings (List: TStrings; const Values: array of string);
var
I: Integer;
begin
for I:=Low(Values) to High(Values) do
List.Add (Values[I]);
end;
?