Delphi разбить текст на 2 части
На форме есть memo1, memo2 и memo3.
В memo1 загружаем прокси (123.123.123:8080), что б при нажатии на кнопку в memo2 занеслось значение "123.123.123", а в memo3 "8080".???Помогите с кодом.
На форме есть memo1, memo2 и memo3.
В memo1 загружаем прокси (123.123.123:8080), что б при нажатии на кнопку в memo2 занеслось значение "123.123.123", а в memo3 "8080".???Помогите с кодом.
Процедура:
procedure Explode(var a: array of string; Border, S: string);
var
S2: string;
i: Integer;
begin
i := 0;
S2 := S + Border;
repeat
a[i] := Copy(S2, 0,Pos(Border, S2) - 1);
Delete(S2, 1,Length(a[i] + Border));
Inc(i);
until S2 = '';
end;
Использование:
var
S: string;
A: array of String;
begin
S := '123.123.123:8080';// разбиваемая строка с текстом
SetLength(A, 10);// указываем длину нашего массива
Explode(A, ':', S); // разбиваем на 2 элемента, символ разбиения - двоеточие
ShowMessage(A[0]); // 123.123.123
ShowMessage(A[1]); // 8080
end;
блин надо ну сами посмотрите как работать со строками, не ужели так сложно. зачем тогда вылазить туда чего не понимаете
procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
begin
for i := 0 to Pred(Memo1.Lines.Count) do
begin
Memo2.Lines.Add(Copy(Memo1.Lines[i], 1, Pos(':', Memo1.Lines[i]) - 1));
Memo3.Lines.Add(Copy(Memo1.Lines[i], Pos(':', Memo1.Lines[i]) + 1, Length(Memo1.Lines[i]) - Pos(':', Memo1.Lines[i])));
end;
end;
И там не "123.123.123:8080", а "123.123.123.123:8080"!
TStringList.Delimiters и DelimitedText умеют бить текст на куски. Или в данном случае просто Pos и пару раз Copy.