Delphi中TMemo的属性Lines中字符串的最大长度是多少?

6

我一直在寻找为什么TMemo.Lines中的String最大长度为1024而不是更长。

我有一个包含约2000个字符的分隔符/ csv数据的文本文件。在处理文件之前,我使用备忘录预览它。

备忘录加载文件:memo.Lines.LoadFromFile(textFile);

我将WordWrap设置为FALSE,scrollBar设置为ssHorizontal。因此,任何记录都不会被换到下一行。

但是当我遍历memo.Lines时,我发现每个索引中保存的最大字符串是1KB或1024个字符。其余部分被截断到下一行。

但是如果我使用TStringList来加载文件,则行在达到超过1024个字符时不会被截断到下一个索引。这种情况在使用TRichEdit时不会发生。

  1. 有人能解释这种现象吗?
  2. 这是TMemo的默认行为吗?

我使用D2006进行尝试。

2个回答

1

这个帖子上有一个 TeamB 的回答: https://forums.embarcadero.com/thread.jspa?threadID=14035

我很惊讶 TStringList 对你不起作用。 我不太确定你所说的是什么意思

当行超过1024个字符时,它未被截断到下一个索引。

我假设行由换行符或CRLF分隔。 如果CSV行超过1024个字符会有什么影响呢? 请发表更多细节。


在处理之前,我使用TMemo来预览文件。还记得我们尝试用Excel打开文本文件时的情况吗?有一个向导可以预览文件内容,并指导我们如何拆分行等。 对于TStringList和TRichEdit,我没有任何问题。 问题只出现在我使用TMemo时。根据你和RRUZ上面提到的链接,TRichEdit也有类似的限制,但最大为4096个字符。 - WishKnew
1
有道理。一种选择是使用TStringList加载它,然后在TMemo中显示前n个字符(假设用户只需要选择分隔符)。另一个可能性是再次通过TStringList加载,但在网格中显示未解析的结果。我不知道该控件是否有限制。您可以使用TRichEdit,或搜索没有该限制的自定义控件。多年前,我有一个第三方Delphi控件,类似于Excel导入向导,但我不记得名称了。 - TrueWill

-1

10
只发布链接而没有解释或摘要会得到-1分。 - Rob Kennedy
实际答案可以在这里找到:http://support.microsoft.com/kb/74225 - David Heffernan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接