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

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

Разобрать строку.


Alex9991 ©   (2007-05-22 20:20:00) 

Есть такая строка: 112,111,222,333,000,12129,49434,
Нужно заполнить её значениями массив, исключив звпятые между элементами. (Значение - это: 112 ...).
Не знаю, как это лучше сдеалать?

дальше этого ничего не придумал...

var
 q: string;
 z: array of string;
begin
 q := Edit3.Text;
 while Pos(',', q) > 0 do
 begin
   SetLength(Length(z) + 1);
   ...
   Delete(q, Pos(',', q), 1);
 end;


Gydvin   (2007-05-22 22:42:00) [1]

Если нужен именно массив

var
 q: string;
 z: array of string;
 i, x, a: integer;
begin
 q := Edit1.Text;
 if q = '' then exit;
 if not (q[length(q)] = ',') then q := q + ',';
 i := 0;

 for x := 1 to length(q) do
   if q[x] = ',' then inc(i);

 setlength(z, i);
 a := 1;

 for x := 0 to i - 1 do
 begin
   while q[a] <> ',' do
   begin
     z[x] := z[x] + q[a];
     inc(a);
   end;
   inc(a);
 end;

 for x := 0 to i - 1 do showmessage(z[x]);

end;


Anatoly Podgoretsky   (2007-05-22 21:00:00) [2]

> Alex9991  (22.05.2007 20:20:00)  [0]

TStringList.DelimitedText


Loginov Dmitry   (2007-05-22 20:32:00) [3]

Може ну его, массив этот. Тогда решить можно так:


var
 List: TStringList;
begin
 List := TStringList.Create;
 List.Text := StringReplace(Edit3.Text, ',', sLineBreak, [rfReplaceAll]);
 {....................}
 List.Free;
end;


Наверх

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