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

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

如果用 CEdit 来编辑一个 TXT 文件,到底可以打开一个多大的文件 64K 吗?
...全文
237 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用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,548

社区成员

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

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

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