【问题标题】:Converting between a multiline string and a TstringList在多行字符串和 TstringList 之间转换
【发布时间】:2017-09-06 17:51:32
【问题描述】:

我有一个多行字符串,我想从中删除一些行。 TMemo 组件包含执行此操作所需的代码。

MyMemo:=TMemo.Create(nil);
try
   MyMemo.Text:=MyString;
   MyMemo.Lines.Delete(x); // lines I want to delete
   MyMemo.Lines.Delete(y);
   MyString:=MyMemo.Text;
finally
   MyMemo.Free;
end;

但使用可视化组件进行基本转换似乎是错误的。有没有不同但同样简单的方法来做到这一点? 谢谢

【问题讨论】:

  • 避免视觉组件的好想法!
  • 您应该知道,x 和 y 的顺序很重要。如果 x 小于 y,则删除原列表的第 y-1 行。

标签: delphi tstringlist multilinestring


【解决方案1】:

您在问题标题中拥有正确的答案 - 使用 TStringList

procedure MyProcedure(var MyString: string);
var
  sl: TStringList;
begin
  sl := TStringList.Create;
  try
    sl.Text := MyString;
    sl.Delete(x); // lines I want to delete
    sl.Delete(y);
    MyString := sl.Text;
  finally
    sl.Free;
  end;
end;

【讨论】:

  • 谢谢,我认为文本只适用于 TMemo,而不适用于 Tmemo 中的 TStrings
  • 还有更多 - 您可能需要查看CommaTextStrictDelimiter 等。
【解决方案2】:

我刚刚意识到 TStringlist 本身有一个 Text 属性。所以这回答了我自己的问题。

【讨论】:

  • 这对 Uli 的回答没有任何帮助。你不能删除这个并接受他的回答吗?
  • 我在看到 Uli 的回答之前添加了这条评论
猜你喜欢
  • 2011-08-25
  • 2011-11-06
  • 2021-09-13
  • 2010-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-05
相关资源
最近更新 更多