在 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;
我想知道如何在 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;