在 Delphi 7 中将字符串拆分为多个字符

Split string by multiple characters in Delphi 7

我想知道如何在 Deplhi 7 中拆分具有多个字符的字符串。 我知道如何用一个字符拆分字符串:

strlst := TStringList.Create;
strlst.Delimiter := '^';
strlst.DelimitedText := receivedtext;

这就是我在 Delphi XE7 中用多个字符拆分字符串的方法。

strlst := tstringlist.create;
strlst.LineBreak := '<>';
strlst.Text := receivedtext;

但是Delphi 7 没有LineBreak 方法。 还有另一种方法可以将字符串拆分为多个字符吗?

您拥有 XE7 的源代码,因此您可以简单地使用与 Delphi 7 中相同的方法。它可能看起来像这样:

procedure SetStringsText(Strings: TStrings; const Text, LineBreak: string);
var
  P, Start, LB: PChar;
  S: string;
  LineBreakLen: Integer;
begin
  Strings.BeginUpdate;
  try
    Strings.Clear;
    LineBreakLen := Length(LineBreak);
    P := PChar(Text);
    while P^ <> #0 do
    begin
      Start := P;
      LB := AnsiStrPos(P, PChar(LineBreak));
      while (P^ <> #0) and (P <> LB) do Inc(P);
      SetString(S, Start, P - Start);
      Strings.Add(S);
      if P = LB then
        Inc(P, LineBreakLen);
    end;
  finally
    Strings.EndUpdate;
  end;
end;