![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Разобрать строку.
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;