2009-09-02 74 views
5

我一直在尋找TMemo.Lines中字符串的最大長度爲1024,但尚未找到的原因。德爾福屬性中的字符串的最大長度TMemo

我有一個文本文件,其中包含長度大約爲2000個字符的分隔/ csv數據。 在處理文件之前,我使用備忘錄進行預覽。

memo.Lines.LoadFromFile(textFile);

我已經將WordWrap設置爲FALSE,並將scrollBar設置爲ssHorizo​​ntal。所以任何記錄都不會被包裝到下一行。

但是,當我迭代memo.Lines時,我發現每個索引中的最大字符串保持爲1KB或1024個字符。其餘的被截斷到下一行。

但是,如果我使用TStringList來加載文件,當它達到超過1024個字符時,行不會被截斷到下一個索引。當我使用TRichEdit時不會發生這種情況。

  1. 任何人都可以解釋這種現象嗎?
  2. 它是TMemo的默認行爲嗎?

我用D2006來試試這個。

回答

1

WishKnew試試這個鏈接

https://forums.embarcadero.com/thread.jspa?threadID=14035

http://www.borlandtalk.com/line-length-in-tmemo-vt67596.html

http://groups.google.com/group/borland.public.delphi.vcl.components.using/browse_thread/thread/318fe3240d2860ba

正如偉大的彼得說下面:

...這有什麼好做的 上訴線長度限制。這個限制實際上只是可視化的,由 控件呈現其文本的方式引起。

再見。

+9

-1僅用於發佈無解釋或摘要的鏈接。 – 2009-09-02 14:06:04

+0

實際的答案可以在這裏找到:http://support.microsoft.com/kb/74225 – 2014-11-28 16:09:48

1

有這個線程TeamB答案: https://forums.embarcadero.com/thread.jspa?threadID=14035

我很驚訝的TStringList沒有爲你工作。我不太清楚你

行的意思,當它達到超過1024個字符 沒有刪節下一 指數。

我假設行由換行符或CRLF分隔。如果CSV行超過1024個字符,爲什麼會這麼重要?請發佈更多細節。

+0

我使用TMemo預覽文件,然後處理它。請記住,當我們嘗試使用Excel打開文本文件?有一個嚮導來預覽文件的內容,並指導我們如何拆分行等? 我對TStringList和TRichEdit都沒有問題。 當我使用TMemo時,問題就發生了。從上面提到的鏈接和RRUZ,TRichEdit也有類似的限制,但它最多保存4096個。 – WishKnew 2009-09-02 03:41:00

+1

這很有道理。一種選擇是使用TStringList加載它,然後在TMemo中顯示前n個字符(假設用戶只需選擇分隔符)。另一種可能性是通過TStringList再次加載,但在網格中顯示未解析的結果。我不知道這個控制是否有限制。您可以使用TRichEdit,或搜索沒有該限制的自定義控件。多年前,我有一個第三方的Delphi控件,它像Excel導入嚮導一樣工作,但我不記得名稱。 – TrueWill 2009-09-02 17:25:17