delphitstringlist

Parsing Text with StringList: \n vs #13#10 vs sLineBreak


I'm trying to parse a string with a TStringList:

  sl:=TStringList.Create;
  try
    sl.Text:=aString;
    FFirstRow:=sl[0];
    FSecondRow:=sl[1];
  finally
    sl.Free;
  end;

If aString:='aa'+#13#10+'bb' or aString:='aa'+sLineBreak+'bb' then FFirstRow is aa and FSecondRow is bb. But if aString:='aa\nbb'then FFirstRow gets the whole string (and there is no second row). How do I parse the string with \n as a delimiter?

I tried sl.Delimiter:=Char(13) (and sl.DelimitedText:=aString).


Solution

  • You can just change the string that is treated as the line break in a TStringList:

      sl := TStringList.Create;
      try
        sl.LineBreak := '\n';
        sl.Text := aString;
        FFirstRow := sl[0];
        FSecondRow := sl[1];
      finally
        sl.Free;
      end;