Delphi(2006):如何按新行拆分并同时中断

Out*_*ror 2 delphi split newline line-breaks delphi-2006

我在 Java 中有这个简单的操作,其中字符串由换行符和中断符分割。

String i= "Holidays 
    
           Great. 
           Bye";
String []linesArray = i.split("\\r?\\n");
Run Code Online (Sandbox Code Playgroud)

我想在 Delphi 2006 中获得相同的结果。

使用以下步骤是否有效?

charArray[0] := '\\r';
charArray[1] := '\\n';

strArray     := strA.Split(charArray);
Run Code Online (Sandbox Code Playgroud)

And*_*and 5

我这样解释您的请求:“在 CR 和 LF 处拆分字符串。” 这意味着 CR+LF 给出一个空字符串元素。例如,'alpha'#13'beta'#10'gamma'#13#10'delta'产生五行'alpha''beta''gamma''',和'delta'

如果是这样,并且如果您使用的是非古代版本的 Delphi,这真的很简单:

var S := 'alpha'#13'beta'#10'gamma'#13#10'delta';

var Parts := S.Split([#13, #10]);
for var Part in Parts do
  ShowMessage(Part);
Run Code Online (Sandbox Code Playgroud)

对于旧的 Delphi 版本

上面的代码需要TStringHelper(至关重要)并且还使用了内联变量声明、for in循环和泛型。

对于旧的 Delphi 版本,您可以手动完成:

var S := 'alpha'#13'beta'#10'gamma'#13#10'delta';

var Parts := S.Split([#13, #10]);
for var Part in Parts do
  ShowMessage(Part);
Run Code Online (Sandbox Code Playgroud)