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

标签 string delphi email

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

最佳答案

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;

使用示例:

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

关于string - 如何将字符串中的服务器名称与端口号分开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5805082/

相关文章:

AVR-GCC 中 PROGMEM 中干净整洁的字符串表

delphi - 如何正确地将属性注入(inject)到表单中?

ios - 无法从 OAuth iOS 中提取用户 Facebook 电子邮件地址

c - 如何解码电子邮件主题

java - 0's and 1' s 的字符串作为位文件

c++ - 制作字符串的不同方法?

delphi - 如何获取高DPI系统下的真实屏幕分辨率?

delphi - 有没有办法知道编辑状态下的TAdoQuery是否被更改?

php - 相似数据算法

java - 开启以数字开头的双字符字符串