使用TStrings拆分字符串,省略CRLF分隔符

vic*_*ico 2 delphi delphi-2007

我有字符串'AAA'+#$0d+#$0a+'BBB'+#$01d+'CCC'.我需要根据#$ 1d字符拆分:

'AAA'+#$0d+#$0a+'BBB'
'CCC'
Run Code Online (Sandbox Code Playgroud)

我正在使用功能:

procedure Split(Delimiter: Char; Str: string; ListOfStrings: TStrings) ;
begin
   ListOfStrings.Clear;
   ListOfStrings.Delimiter     := Delimiter;
   ListOfStrings.DelimitedText := Str;
   ListOfStrings.StrictDelimiter:= true;
end;
...
split(#$1d,'AAA'+#$0d+#$0a+'BBB'+#$01d+'CCC',sl);
Run Code Online (Sandbox Code Playgroud)

不幸的是,它根据CRLF分裂,我不需要.

如何让字符串只被#$ 1d激活?

bum*_*mmi 5

您必须ListOfStrings.StrictDelimiter:= true;在设置属性DelimitedText之前进行设置.

   ListOfStrings.StrictDelimiter:= true;
   ListOfStrings.DelimitedText := Str; 
Run Code Online (Sandbox Code Playgroud)