ЕН
Елена Некрасова

Delphi разбить текст на 2 части

На форме есть 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.

Похожие вопросы
Как разбить ячейку с текстом и числами в Excel
Как разбить текст на части в Microsoft Visual studio 2010 - VB?
Delphi. Нужен текст программы.
комментарии к тексту программы в Delphi
как разбить текст на колонки в HTML?
как разбить диск С: на 2 части?
Тем кто хоть как-то разб в delphi
Delphi. В мемо поместить текст из файла, но только часть - от слова1 до слова2
Как разбить файл на 2 части
Как разбить диск на 2 части?