2024年6月13日发(作者:党澎)
DELPhi 7 ASCII 字符转string
标题:DELPhi 7 ASCII 字符转string 标题:
var
monid, Goods:PDWORD;
i,pi:DWord;
goodsName:PWideChar;
strName:string;begin
;
for i:=1 to $100 do
begin Goods:=Pointer($11C1908+$9400+I*4);
pi:=Goods^;
if pi>0 then begin
GoodsName:=Pointer(Goods^+4);
Goods:=Pointer(Goods^+$4);
GoodsName:=Pointer(Goods^);
strName:=WideCharTostring(GoodsName); //宽字符转string 这里的
UNICODE的字符数据 *******
if strName='11' then continue;
(strName);
end;
end;
上面的是用UNICODE的字符串 GoodsName
我想换成ASCII的字符串 来显示出DWord里面的汉字,知道 PWideChar;这个指向
widechar的指针 不知道是这个指针不对还是别的鞋错了,我其他都没错,就是不会转换
成文本文字,困了我几天,头疼 这是我以前写的读取二代身份证里信息用到的,不知道对
你有帮助不?见笑了。
function UnicodeToAnsi(SubUnicode: string):string; //将unicode码转换为汉
字
var a:array[0..500] of char;
s1,s2:char;
substr1,substr2,s:string;
str:string;
i:integer;
begin
if length(SubUnicode) mod 4 = 0 then
Begin
str:='';
for i:=1 to length(SubUnicode) div 4 do
Begin
s:='';
substr1:=copy(SubUnicode,i*4-3,2);
substr2:=copy(SubUnicode,i*4-1,2);
s1:=chr(hextoint(substr1));
s2:=chr(hextoint(substr2));
s:=s+s2+s1;
strpcopy(a,s);
str:=str+copy(widechartostring(@(a[0])),1,2);
end;
result:=str;
end;
end;function HexToInt(hex:string):cardinal;
const cHex='ABCDEF';
var mult,i,loop:integer;
begin
result:=0;
mult:=1;
for loop:=length(hex)downto 1 do
begin
i:=pos(hex[loop],cHex)-1;
if (i<0) then i:=0;
inc(result,(i*mult));
mult:=mult*16;
end;
end; 本文地址: /delphi/?tid=360015 来
自:/
2024年6月13日发(作者:党澎)
DELPhi 7 ASCII 字符转string
标题:DELPhi 7 ASCII 字符转string 标题:
var
monid, Goods:PDWORD;
i,pi:DWord;
goodsName:PWideChar;
strName:string;begin
;
for i:=1 to $100 do
begin Goods:=Pointer($11C1908+$9400+I*4);
pi:=Goods^;
if pi>0 then begin
GoodsName:=Pointer(Goods^+4);
Goods:=Pointer(Goods^+$4);
GoodsName:=Pointer(Goods^);
strName:=WideCharTostring(GoodsName); //宽字符转string 这里的
UNICODE的字符数据 *******
if strName='11' then continue;
(strName);
end;
end;
上面的是用UNICODE的字符串 GoodsName
我想换成ASCII的字符串 来显示出DWord里面的汉字,知道 PWideChar;这个指向
widechar的指针 不知道是这个指针不对还是别的鞋错了,我其他都没错,就是不会转换
成文本文字,困了我几天,头疼 这是我以前写的读取二代身份证里信息用到的,不知道对
你有帮助不?见笑了。
function UnicodeToAnsi(SubUnicode: string):string; //将unicode码转换为汉
字
var a:array[0..500] of char;
s1,s2:char;
substr1,substr2,s:string;
str:string;
i:integer;
begin
if length(SubUnicode) mod 4 = 0 then
Begin
str:='';
for i:=1 to length(SubUnicode) div 4 do
Begin
s:='';
substr1:=copy(SubUnicode,i*4-3,2);
substr2:=copy(SubUnicode,i*4-1,2);
s1:=chr(hextoint(substr1));
s2:=chr(hextoint(substr2));
s:=s+s2+s1;
strpcopy(a,s);
str:=str+copy(widechartostring(@(a[0])),1,2);
end;
result:=str;
end;
end;function HexToInt(hex:string):cardinal;
const cHex='ABCDEF';
var mult,i,loop:integer;
begin
result:=0;
mult:=1;
for loop:=length(hex)downto 1 do
begin
i:=pos(hex[loop],cHex)-1;
if (i<0) then i:=0;
inc(result,(i*mult));
mult:=mult*16;
end;
end; 本文地址: /delphi/?tid=360015 来
自:/