如何将服务器名称与字符串中的端口号分开?

sps*_*pli 4 delphi string email

如果有像smtp.gmail.com:587这样的邮件服务器字符串,我如何解析它以在字符串变量中保存"smtp.gmail.com"而在另一个中保存"587"?

And*_*and 9

function SplitAtChar(const Str: string; const Chr: char;
  out Part1, Part2: string): boolean;
var
  ChrPos: integer;
begin
  result := true;
  ChrPos := Pos(Chr, Str);
  if ChrPos = 0 then
    Exit(false);
  Part1 := Copy(Str, 1, ChrPos - 1);
  Part2 := Copy(Str, ChrPos + 1, MaxInt);
end;
Run Code Online (Sandbox Code Playgroud)

样品用法:

var
  p1, p2: string;
begin
  if SplitAtChar('smtp.gmail.com:587', ':', p1, p2) then
  begin
    ShowMessage(p1);
    ShowMessage(p2);
  end;
Run Code Online (Sandbox Code Playgroud)