Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Подскажите, как "разложить" строку на части. [D7, 95/98]


fast2 ©   (2006-06-16 20:28:00) 

Есть строка вида '2342,5434,6765,4568,3432' Как "вірезать числа? Может есть простой алгоритм готовый?


Leonid Troyanovsky   (2006-06-16 23:31:00) [1]


> Пусик ©   (16.06.06 23:14) [8]

> Надеюсь, что теперь понятно будет:

> LOL


Непедагогично, IMHO, бо Начинающим.

--
Regards, LVT.


begin...end   (2006-06-16 23:23:00) [2]

> Пусик ©   (16.06.06 23:14) [8]

LOL


Пусик   (2006-06-16 23:14:00) [3]


> begin...end ©   (16.06.06 22:40) [7]


Надеюсь, что теперь понятно будет:

type
 TArrNum=array of Integer;
...
function ParseStrNum(const Src: String): TArrNum;
var
 L: TStringList;
 i: Integer;
begin
L := TStringList.Create;
try
  L.Text := StringReplace(Src,',',#13#10,[rfReplaceAll]);
  SetLength(Result,L.Count);
  for i := 0 to L.Count-1 do Result[i] := StrToInt(L[i]);
finally
  L.Free;
end;
end;


Вызов:

procedure TForm1.Button1Click(Sender: TObject);
var
s: String;
Arr: TArrNum;
begin
s :=  '2342,5434,6765,4568,3432';
Arr := ParseStrNum(s);


PS.

Что за манера устраивать придирки. Выдана идея, нет - надо придраться и получить полный код.
Может, тебе и теперь код непонятен? Могу даже и комментарии еще написать. Специально для камчатки.


begin...end   (2006-06-16 22:40:00) [4]

> Пусик ©   (16.06.06 22:25) [6]

До "камчатки" по-прежнему не доходит глубина смысла Ваших свежих идей. Ибо тот же результат в memo можно было "продемонстрировать" и без TStringList. А пример [1], кроме демонстрации в memo, ничего больше и не показывает.


Пусик   (2006-06-16 22:25:00) [5]


> begin...end ©   (16.06.06 20:58) [3]
>
> > Пусик ©   (16.06.06 20:33) [1]
>
> Вопрос с задней парты: а какую роль здесь играет TStringList?
>


Для "камчатки":

TStringList здесь играет основную роль.
TMemo-же только для демонстрации показан.


> sniknik ©   (16.06.06 20:59) [4]
>
> зачем усложнять?


см. выше.


fast2   (2006-06-16 21:35:00) [6]

а если мне надо в цикле обработать. Т.е. выполнять от 1 до колич. элементов, разделенных запятой. А в цикле "прочитать" i-тый элемент.


sniknik   (2006-06-16 20:59:00) [7]

зачем усложнять?

var
s: String;
begin
s :=  '2342,5434,6765,4568,3432';
Memo1.Lines.Delimiter:= ',';
Memo1.Lines.DelimitedText:= s;
end;


begin...end   (2006-06-16 20:58:00) [8]

> Пусик ©   (16.06.06 20:33) [1]

Вопрос с задней парты: а какую роль здесь играет TStringList?


fast2   (2006-06-16 20:53:00) [9]

>Пусик ©   (16.06.06 20:33) [1]
Огромное спасибо!


Пусик   (2006-06-16 20:33:00) [10]

var
 L: TStringList;
 s: String;
begin
 s :=  '2342,5434,6765,4568,3432';
 L := TStringList.Create;
 try
   L.Text := StringReplace(s,',',#13#10,[rfReplaceAll]);
   Memo1.Lines.Text := L.Text;
 finally
   L.Free;
 end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо