类型转换,请高手帮忙(急用在线等待)(100分)

  • 主题发起人 主题发起人 laijf
  • 开始时间 开始时间
L

laijf

Unregistered / Unconfirmed
GUEST, unregistred user!
var
s:array[0..1]of byte;
mess:string;
begin
如果将UCS2的S里的内容转换为mess,
s中假设是(98,201)
 
UCS2是什么?转换规则是什么?
 
我也不是很清楚,好像加到s之前是一个WIDESTRING类型的
 
WIDESTRING就是长字串类型呀?
 
mess:=pchar(@s);
showmessage(mess);
 
我刚刚查了一下,UCS2好象是一种编码,你是要将UCS2编码转换成GB码?
不过我没接触过这个,也不知该怎么做。
 
dedema说的我刚才试了,不对得出的结果不对,因该是个‘拉’字
 
98对应的16进制62
201对应的16进制c9

caption :=WideChar($62c9)

这样就对了。
 
function BTW(b:array of byte): word;
var
dw, tdw: word;
begin
tdw := b[0];
dw := tdw shl 8;
tdw := b[1];
dw := dw + tdw;
result := dw;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
b: array[0..1]of byte;
w: word;
begin
b[0]:=98;
b[1]:=201;
w:=BTW(b);
caption :=WideChar(w)
end;
 
s[1]:=98;
s[0]:=201;
mess:=widechar(s);
showmessage(mess);
 
procedure TForm1.Button1Click(Sender: TObject);
var
S1: String;
S2: String;
C : WideChar;
begin
S1 := #98#201;
C := WideChar(Ord(S1[1])*256 + Ord(S1[2]));
S2 := C;
ShowMessage(S2);
end;
 
dedema我简直太爱你,居然这么简单就搞定了,谢谢
谢谢谢谢谢谢谢谢谢谢谢谢
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
724
import
I
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部