| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1040 人关注过本帖
标题:宽字符串转字的节数组 一段代码 大家来讨论
只看楼主 加入收藏
meisbrother
Rank: 2
等 级:论坛游民
帖 子:100
专家分:29
注 册:2007-5-11
结帖率:84.62%
收藏
 问题点数:0 回复次数:0 
宽字符串转字的节数组 一段代码 大家来讨论
我刚学delphi 没找到现成的函数,自己写了这段代码 ,请大家讨论一下其他的实现方法,
var
  a: WIDEstring;
  l, b: Integer;
  p: Pointer;
  k: pbyte;
  tem: array of byte;
type
  TArr = array of byte;
begin
  a := '李智勇';
  //b := Pword(@a[1])^;  //可以取出字符串的第一个word
  l := pinteger(pinteger(@a)^ - 4)^; //字符串第一个字符在内存中-4是字符串的字节数量
  SetLength(tem, pinteger(pinteger(@a)^ - 4)^);  //为字节数组分配内存
  p := Pointer(@a[1]);  //把字符串的首地址转换为通用指针
  k := pbyte(p); //通用指针在转换为在字节指针
  // tem[0]:=k[0];   //也可以这样赋值,但麻烦
  // tem[1]:=k[1];
  move(k[0], tem[0], l);   //用内存复制轻快
  ShowMessage(IntToHex(tem[2], 2) + IntToHex(tem[3], 2)); //unicode 7A66
//通过这种转换不用字节高地位交换
 end;




[ 本帖最后由 meisbrother 于 2009-10-12 21:07 编辑 ]
搜索更多相关主题的帖子: 代码 字符 
2009-10-11 23:07
快速回复:宽字符串转字的节数组 一段代码 大家来讨论
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017605 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved