如何将这条VB语句转换为DELPHI语句? (100分)

  • 主题发起人 主题发起人 zcflion
  • 开始时间 开始时间
Z

zcflion

Unregistered / Unconfirmed
GUEST, unregistred user!
VB:
AscB(MidB("要和",1,1))
返回为129
delphi:
s:="要和"

ord(s[1])
//返回为210
如何让delphi 返回129 ??
但是如果字符串不是汉字,而是字母组成的话,返回值都一样,到底是什么原因 ??

 
procedure TForm1.Button1Click(Sender: TObject);
var
S : WideString;

begin
s:='要和';
ShowMessage(IntToStr( Lo(ord(s[1])) ));
end;
 
中文字符是双字节
试试Ord(String(s)[1])或Ord(String(s)[2])
 
if ord(s[1])>128 then
是漢字
else 是字母
 
129代表的是什么东西?
我把相关的给你,你可以任意组合.
procedure TForm1.FormKeyDown(Sender: TObject
var Key: Word;
Shift: TShiftState);
var
s,t : string;
a : array[0..2] of char;
a1,a2, b : integer;
begin
s:='要和';
StrLCopy(a, PChar(Copy(S, 1, 2)), 2);
a1 := Ord(a[0]);
a2 := Ord(a[1]);
b := (a1 shl 8) or a2;
showmessage(IntToStr(b));
end;
 
也就是取“要和”的第一个字“要”的内码,汉字的为内码。
由于汉字是由两个字节组成的,再用Lo来取得低位的ASCII码
ShowMessage(IntToStr(lo(ord(WideString('要和')[1]))));
 
多人接受答案了。
 

Similar threads

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