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