Sets may have at most 256 elements出错

Wnyu 2002-08-13 06:50:13
当我输入下面代码时:
Type
TCharSet = set of Char;
Const
AllDigits: TDigits = ['0'..'9'];
程序能成功地编译并运行,但当考虑到UniCode时,我把代码修改为:
Type
TWideCharSet = set of WideChar;
Const
AllWideCharDigits: TWideCharSet = ['0'..'9'];
这时候编译出错,提示如下:
[Error] MyAutoObject.pas(41): Sets may have at most 256 elements”.
请问如何解决这个错误?
...全文
51 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
del_c_sharp 2002-08-13
  • 打赏
  • 举报
回复

char 8 bits --->256
widechar 16 bits --->256*256

the max count of a set enum is 256
so......

if then array of widechar could replace the set of widechar,
try it! good luck!

Wnyu 2002-08-13
  • 打赏
  • 举报
回复
这样转后,是否还是UniCode?如果不是0..9,而是中文,是否可行?谢谢!
torble 2002-08-13
  • 打赏
  • 举报
回复
集合过界了,只能设置 256 个元素

而 WideChar 是 16 Bit 的

针对你的程序,解决方法是先用 set of Char ;用到 WideChar 时再转换

Char 与 WideChar 可以轻松转换的,因为 Char 与 WideChar 中的前 256 个字符是兼容的

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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