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

Вниз

Подскажите, как "разложить" строку на части.   Найти похожие ветки 

 
fast2   (2006-06-16 20:28) [0]

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


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

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;


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

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


 
begin...end ©   (2006-06-16 20:58) [3]

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

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


 
sniknik ©   (2006-06-16 20:59) [4]

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

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


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

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


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


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


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

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


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


см. выше.


 
begin...end ©   (2006-06-16 22:40) [7]

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

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


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


> 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 23:23) [9]

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

LOL


 
Leonid Troyanovsky ©   (2006-06-16 23:31) [10]


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

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

> LOL


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

--
Regards, LVT.



Страницы: 1 вся ветка

Текущий архив: 2006.07.09;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.034 c
2-1151051290
zdm
2006-06-23 12:28
2006.07.09
Ограничение символов в "Edit"


15-1150009714
TUser
2006-06-11 11:08
2006.07.09
Эта странная Малайзия ...


8-1138694172
Sour Smile
2006-01-31 10:56
2006.07.09
Как наложить 32-х битный bitmap-спрайт?


6-1133458989
ZeFiR
2005-12-01 20:43
2006.07.09
Вопрос по созданию веб-браузера...


15-1149759101
Guest89
2006-06-08 13:31
2006.07.09
Может ли телевизор поймать изображение монитора компьютера?