【问题标题】:Delphi - Split string by line breakDelphi - 按换行符拆分字符串
【发布时间】:2012-12-02 08:31:10
【问题描述】:

注意:我使用的是 Delphi 7。

有没有办法通过换行符分割字符串?

我想要以下内容:

procedure Split
   (const Delimiter: Char;
    Input: string;
    const Strings: TStrings) ;
begin
   Assert(Assigned(Strings)) ;
   Strings.Clear;
   Strings.Delimiter := Delimiter;
   Strings.DelimitedText := Input;
end;

var
  xMSG:String;
  xStr:String;
  xStrList:TStrings;
  xLineBreak:String;
  xHello:String;
  xWorld:String;
begin
  xLineBreak := AnsiString(#13#10);
  xMSG := 'Hello ' + xLineBreak + 'World';
  xStrList := TStringList.Create;
  Split(xLineBreak,AnsiString(xMSG),xStrList);
  xHello := xStrList[0];
  xWorld := xStrList[1];
  MessageBox(0,PAnsiChar(xHello + xWorld),'Test',0);
end.

【问题讨论】:

    标签: delphi delphi-7 line-breaks split


    【解决方案1】:

    是的,这就是Text 属性的作用。引用帮助(文本属性(TStrings)):

    将 TStrings 对象中的字符串作为单个字符串列出,并带有 由回车和换行分隔的单个字符串。

    由于它是单排,因此您不需要额外的实用程序。

    var
      xMSG:String;
    //  xStr:String;
      xStrList:TStrings;
    //  xLineBreak:String;
      xHello:String;
      xWorld:String;
    begin
    //  xLineBreak := AnsiString(#13#10);     // you don't need this, there's sLineBreak
      xMSG := 'Hello ' + sLineBreak + 'World';
      xStrList := TStringList.Create;
    
    //  Split(xLineBreak,AnsiString(xMSG),xStrList);  
      xStrList.Text := xMSG;  // <--
    
      xHello := xStrList[0];
      xWorld := xStrList[1];
      xStrList.Free;
      MessageBox(0,PAnsiChar(xHello + xWorld),'Test',0);
    end;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-08
      • 2015-06-17
      • 2012-04-20
      • 1970-01-01
      • 2015-02-25
      相关资源
      最近更新 更多