有人试过吗:一个CEdit控件中最多可以放多少字符?一个CString呢?

HuWenjin 2002-10-09 08:48:39
我没有试过一个 CString 和一个 CEdit 中到底能存下多少字符,反正我写的一些程式中是够用的,我不是一个很爱钻的人,不知各位有谁试过。

如果用 CEdit 来编辑一个 TXT 文件,到底可以打开一个多大的文件 64K 吗?
...全文
231 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
用户 昵称 2002-10-10
  • 打赏
  • 举报
回复
98 下cedit大概能放30多k
HuWenjin 2002-10-10
  • 打赏
  • 举报
回复
看来很多人对他还是有好感的,但我一直不想用RICHEDIT

没好感...
super_xxx 2002-10-10
  • 打赏
  • 举报
回复
你用CRichEdit就可以了
HuWenjin 2002-10-10
  • 打赏
  • 举报
回复
大小的问题已解决了,见上面的测试段

98 下的 CEdit 标准存放 65535 个字符

如何使 CEdit 能放大于65535 个字符的东东呢?
HuWenjin 2002-10-09
  • 打赏
  • 举报
回复
多大都可以显示吗?

我查了一下MSDN 其中定义默认为 UINT_MAX

在vc98\include\limits.h 中定义为

#define UINT_MAX 0xffffffff /* maximum unsigned int value */

这样的话就可以显示 4294967295 个字符了 也就是 4194303 *1024 个字符这也不只64K吧

晕!这么大能显示吗?我向里面 copy 东西的时候几下就能再写了?
jxsrufeng 2002-10-09
  • 打赏
  • 举报
回复
nLength = 你要显示字串的长度

if (pmyEdit->GetLimitText() < nLength){
pmyEdit->SetLimitText(nLength);
}

pmyEdit->SetWindowText(lpszmyString);
HuWenjin 2002-10-09
  • 打赏
  • 举报
回复
thanks afxtian(流浪者)

其实找出这个答案不是目的,目的是如何能在98下做一个方便的 CEdit 类

以处理更大的文件

不知大家有没有更好的主意?
HuWenjin 2002-10-09
  • 打赏
  • 举报
回复
不是吧
64K的数据应有 ASCII 字符 = 64 *1024 = 65536 个字符

可我在一个 edit 中死命 的 粘贴,好象没有哪么多的字符?

如果要把 98 下的 NOTEPAD 改掉,可以打开大于 64 K 的文件,但是不用
richedit 那该如何作呢?

不会象原来在DOS下一样,自已写一个 eidt 连光标闪动 都自已写?
Ah 2002-10-09
  • 打赏
  • 举报
回复
CEdit:
2000和95下是不一样的
95下只能64k
2000下和CString一样
HuWenjin 2002-10-09
  • 打赏
  • 举报
回复
是吗?那CEdit 呢?
ice_river_feng 2002-10-09
  • 打赏
  • 举报
回复
CString 可以存放1个G的大小以上,因为它的空间是动态分配的。
步履人生 2002-10-09
  • 打赏
  • 举报
回复
Up for you
HuWenjin 2002-10-09
  • 打赏
  • 举报
回复

测试一个 Edit 中可以显示多少字符数据
使用: PIII 1G 256M 30G

CString strEditText;
UINT unLimit;
char szTempText[128];
strEditText.Empty();

for( int i = 0 ; i < 922 ; i ++ )
{
sprintf(szTempText,"测试第 %d 行 ---------------------------------------------------\r\n",i);
strEditText += szTempText;
}

m_editCtrl.SetLimitText(UINT_MAX);
m_editCtrl.SetWindowText(strEditText);

unLimit = m_editCtrl.GetLimitText();
m_editCtrl.SetWindowText(strEditText);

sprintf(szTempText,"GetLimitText() 返回 %ud ",unLimit);
MessageBox(szTempText);


//获取 GetLimitText() 返回 65535


每行大约有68个字符,只能显示922行

则共有字符数为 68*922 = 62696 近似等于 61 * 1024

结论:在98下CEdit控件只能显示约 64K 的数据

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧