3
我有一个TMemo其中包含相当多的文本,80M(约400K行)。德尔福 - 查找文本大TMemo
TMemo设置为WordWrap = FALSE,有不需要来查找包装在两行中的文本。
我需要一种快速的方式从头开始查找文本,并且还可以找到下一个。
所以,我把一个TEdit放置文本找到和TButton找到TMemo中的文本。
我正在考虑使用Pos(),逐行检查,但这将是缓慢的。 我不知道如何确定当前光标位置的TMemo.Lines [index]。
任何人都可以想出解决方案?
感谢
UPDATE:
我找到了解决办法从这里: Search thru a memo in Delphi?
的SEARCHTEXT()函数的工作,速度快,而且速度非常快。 花了几秒钟在底端搜索唯一字符串。
如果您使用了丰富的编辑控件,您可以使用['EM_FINDTEXT'](http://msdn.microsoft.com/en-us/library/windows/desktop/bb788009.aspx),它包裹在[ TRichEdit的'FindText'](http://docwiki.embarcadero.com/Libraries/en/Vcl.ComCtrls.TCustomRichEdit.FindText)方法。 – 2012-01-05 10:55:22
我认为使用具有TMemo.Lines.Text属性的Pos函数应该更快;尽管它也可能找到包装的子串,但我不认为这是一个问题。 – kludg 2012-01-05 11:01:17
关于SO的类似问题:[search-thru-a-memo-in-delphi](http://stackoverflow.com/questions/4232709/search-thru-a-memo-in-delphi)。我不知道它是否快速,但答案有索引位置的解决方案。 – 2012-01-05 11:39:53