那位大侠帮我看看这段程序那错了,多谢了。(0分)

阿波

Unregistered / Unconfirmed
GUEST, unregistred user!
我想将输入EDIT1中的16进制的数定为12位长度,不够的用零补,然后取出两位转换为十进制
的数,并将它们相加,(如输入111111,最后相加结果应为6)结果放在EDIT2中,可下面这段程序为什么不对呢。
var
s,s2,s3:string;
k1,i:integer;
begin
s:=edit1.text;
s2:=stringofchar('0',12-length(s))+s2;
for i:=1 to length(s3) div 2do
k1:= (K1+strtoint(IntToStr(StrToInt64('$'+copy(s2,2*i-1,2))))) ;
s3:=inttostr(k1);
edit2.text:=s3;
end;
end.
 
分数呀,帅哥
 
老实说没分了,不要太现实了啊,帮帮忙。
 
var
s, s2, s3: string;
k1, i: integer;
begin
s := edit1.text;
s2 := stringofchar('0', 12 - length(s)) + s;
for i := 1 to length(s2) div 2do
begin
k1 := (K1 + strtoint(IntToStr(StrToInt64('$' + copy(s2, 2 * i - 1, 2)))));
showmessage(inttostr(2 * i - 1) + '$' + copy(s2, 2 * i - 1, 2));
end;
s3 := inttostr(k1);
edit2.text := s3;
end;

这样可以调试通过。
但是你的结果好像是10进制的……
再想想吧。
 
多谢多谢,我正发愁呢,谢谢你了。
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
598
import
I
I
回复
0
查看
876
import
I
顶部