'$'+'6F'总是出错(50分)

  • 主题发起人 主题发起人 neogene
  • 开始时间 开始时间
N

neogene

Unregistered / Unconfirmed
GUEST, unregistred user!
'$'+'6F'总是出错
'$' is not a valid integer value
buf :=widechar(StrToint('$'+'6F');
先将6F换成十六进制,通过widechar转换成字符。
为什么总是出错。
高手回信到信箱。
 
buf :=Chr(StrToint('$'+'6F'));
 
不对呀
还是出错。
 
var Buf:Array[0..100] of char;
begin
buf[1] :=Chr(StrToint('$'+'6F'));
 
function ASCGetStr(const S: string): string;
var
I,j: Integer;
str : string;
len : integer;
int_var : integer;
begin
J := 1;
len := Length(S) div 2;
for I := 1 to len do
begin
str := copy(s,j,2);
j := J + 2;
Result := Result + Chr(StrToInt('$'+str));
end;
end;
 
但是我要将buf转成string
用widechartostring
char和widechar怎么区别
 
edit1.Text := chr($6f);
 
哦,看错了。不好意思,chr(strtoint(‘6f'));
 
WideString:与String类似,不过是基于WideChar字符类型(UniCode字符集),用了存储Unicode字符。引入这种类型,主要是为了支持OLE编程。
 
'$6F'转换的结果是不是o啊?
 
function HexToInt(Hex: string): Integer;
var
I, Res: Integer;
ch: Char;
begin
Hex := AnsiReplaceText(Hex, '$', '');
Res := 0;
for I := 0 to Length(Hex) - 1 do
begin
ch := Hex[I + 1];
if (ch >= '0') and (ch <= '9') then
Res := Res * 16 + Ord(ch) - Ord('0')
else if (ch >= 'A') and (ch <= 'F') then
Res := Res * 16 + Ord(ch) - Ord('A') + 10
else if (ch >= 'a') and (ch <= 'f') then
Res := Res * 16 + Ord(ch) - Ord('a') + 10
else raise Exception.Create('Error: not a Hex String');
end;
Result := Res;
end;

HexToInt('$6f');
 
不过现在认真看,不知道你想干吗~~~
 

Similar threads

回复
0
查看
1K
不得闲
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
899
SUNSTONE的Delphi笔记
S
D
回复
0
查看
866
DelphiTeacher的专栏
D
后退
顶部