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

时间:2010-06-08 09:21:37

标签: 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'


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

如果限制器没有被Delphi转换,那么我认为@Roald van Doorn  解决方案可行,所以他获得了答案。

2 个答案:

答案 0 :(得分:5)

将字符串转换为字符串列表很容易,您需要做的就是以下步骤。

  • 删除前导'

  • 用#13#10替换所有'#$D#$A'(从而将字符串再次分成行。

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

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

答案 1 :(得分:2)

让我们试试这段代码: http://www.delphi3000.com/articles/article_4028.asp

另一件事:我看到你正在使用TScriptForm对象。给这个对象序列化/反序列化功能是件好事。

例如,读取此元代码: tscriptform:myform; the_stream:tstream;

myForm会:= tscriptform.create; the_stream.create(....) myform.unserialize(the_stream);

实践中:创建一个tstream后代,管理表单的序列化,并使用它来封装表单对象的保存/加载逻辑。