Delphi 7:如何将字符串拆分为TStringList

Maw*_*awg 1 delphi delphi-7

它是Delphi ,我将一个字符串分成几行.

具体来说,我有一个DFM作为字符串(从MySql数据库中提取),我想将它拆分为TStringList中的行.

它看起来像这样......

'Oject Form1: TScriptForm'#$D#$A'  Left = 0'#$D#$A'  Top = 0'#$D#$A'  Align = alClient'#$D#$A'  BorderStyle = bsNone'#$D#$A'  ClientHeight = 517'#$D#$A'  ClientWidth = 993'#$D#$A'  Color = clBtnFace'#$D#$A'  Font.Charset = DEFAULT_CHARSET'#$D#$A'  Font.Color = clWindowText'#$D#$A'  Font.Height = -11'#$D#$A'  Font.Name = 'MS Sans Serif''#$D#$A'  Font.Style = []'#$D#$A'  OldCreateOrder = False'#$D#$A'  SaveProps.Strings = ('#$D#$A'    'Visible=False')'#$D#$A'  PixelsPerInch = 96'#$D#$A'  TextHeight = 13'#$D#$A'
Run Code Online (Sandbox Code Playgroud)


Anser:对我来说这对我来说几乎不是问题.Delphi #$D#$A自动将CR LF视为CR LF,因此我所要做的就是将字符串分配给TStringlist的Text属性(这也剥离了每个引号的单引号#$D#$A).所以,我只需要添加一行代码.

如果限制器没有被Delphi转换,那么我认为@Roald van Doorn解决方案可以起作用,因此他获得了答案.

R-D*_*R-D 5

将字符串转换为字符串列表很容易,您只需执行以下步骤即可.

  • 脱掉领先 '

  • '#$D#$A'用#13#10 替换全部(从而将字符串再次分成行.

  • 删除尾随 '#$D#$A

将结果字符串分配给StringList.Text属性,stringlist中的每一行现在都是DFM文件的一行.

  • 另外,''(两个单引号)应该用'(单引号)代替. (3认同)