Sting 与 WideString, PChar 与 PWideChar 互相转换?

风车呼噜噜 2012-03-15 12:00:19
如题,哪位对这些了解比较清楚,请指教。
...全文
189 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
kaikai_kk 2012-03-15
  • 打赏
  • 举报
回复
String:2009以前版本就是AnsiString,是单字节的字符串,后面的版本是UnicodeString
如Length('张三')长度为4 (1个汉字占2个字节)
WideString:由WideChar组成,是双字节的字符串,Length('张三')长度为2,

AnsiChar:1字节Ansi字符
WideChar:2字节的Unicode字符
Char:相当于AnsiChar;

Sting与WideString,AnsiChar与WideChar都可以直接转换
只不过他们占用字节不同,所以用length()取长度结果也不同

前面加上P,就是表示相应的指针类型了
区别是要申请内存空间,访问的时候用^符号,不加^符号也是可以的。编译器有时会帮你处理
我看见佛 2012-03-15
  • 打赏
  • 举报
回复
Sting是双字节字符串
WideString单字节字符串
直接赋值就可以转换

var
str: AnsiString;
begin
str := '万一';
ShowMessage(IntToStr(Length(str))); {长度是: 4}
end;
--------------------------------------------------------------------------------

//宽字符串 WideString (效率不及 AnsiString)
var
str: WideString;
begin
str := '万一';
ShowMessage(IntToStr(Length(str))); {长度是: 2}
end;
http://www.cnblogs.com/del/archive/2008/03/03/1088956.html
这里介绍比较祥细了
蓝色光芒 2012-03-15
  • 打赏
  • 举报
回复
S : AnsiString;
WS : WideString;

S := 'aaaa';
WS := S;
S := WS;

PAnsiChar和PWideChar只是一个指针而已,
针对他们 取^ 时,分别得到一个Ansi字符和Wide字符

说起来还真不好说清楚。。。-_!

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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