为什么汉字的长度不为2?

yzyue 2003-08-14 05:02:22
请看下列代码:

var
strA:AnsiString;
begin
strA:='中国1234' ;
Label1.Caption:=IntToStr(Length(strW));//结果为6
Label2.Caption:=LeftStr( strW,4); //结果为'中国12'

也就是说:对于AnsiString类型,一个汉字和一个字母的长度都为1,我现在需要计算一段文字所占的行数,因此需要‘汉字的长度为2,而英文字母的长度为1',而且在取子串的时候一个汉字的长度应为2,且不会取到半个汉字,请问如何做?
...全文
74 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
henry2003 2003-08-14
  • 打赏
  • 举报
回复
同上!
lw549 2003-08-14
  • 打赏
  • 举报
回复
借楼主宝地一用
鉴别CSDN星星的含金量

http://expert.csdn.net/Expert/topic/2147/2147062.xml?temp=.9299433
Little2000 2003-08-14
  • 打赏
  • 举报
回复
你上面定义的变量是strA,而下面调用的是StrW,如果你调用StrA,就没有问题了
lw549 2003-08-14
  • 打赏
  • 举报
回复
showmessage('我'[1]+'你'[2]);
lw549 2003-08-14
  • 打赏
  • 举报
回复
showmessage('我'[1]+'你'[2]);
lw549 2003-08-14
  • 打赏
  • 举报
回复
就是WideString的问题。它认为一个汉字就是一个单位

可以这样做。
showmessage('我'[1]);
lxpbuaa 2003-08-14
  • 打赏
  • 举报
回复
你定义的strW为:WideString

————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————

5,939

社区成员

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

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