在Delphi 7中按多个字符拆分字符串

时间:2015-02-17 16:11:17

标签: delphi split delphi-7 tstringlist

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

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

这就是我可以在Delphi XE7中拆分多个字符的字符串。

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

但是Delphi 7没有LineBreak方法。 是否有另一种方法将字符串拆分多个字符?

1 个答案:

答案 0 :(得分:1)

您拥有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;