下面有两段代码,一段是vb6的原码,一段是我翻译成delphi 的,请各位朋友帮我检查一下那里有错误!!多谢多谢!解决立即给分!
vb代码:Randomize
offset = 0
length = 128
For i = 1 To 128
wi = Rnd * 127
databuff2(i - 1) = wi
Next iwi = Val(txtFields(0).Text)
wig = (wi \ 128) * 2
wid = (wi - wig \ 2) * 2
databuff2(0) = wid
databuff2(7) = wig
wi = 0
For i = 7 To 0 Step -1
databuff2(i) = (databuff2(i) \ 2) * 2
If (wi Mod 2) = 1 Then
databuff2(i) = databuff2(i) + 1
End If
wi = wi \ 2
Next i
databuff2(8) = 5
databuff2(9) = 17
st = swr_24c01a_hex(icdev, offset, length, databuff2(0))
If st < 0 Then
MsgBox "写ic卡错!", , "错误提示"
st = ic_exit(icdev)
Exit SubEnd If
st = ic_exit(icdev)
MsgBox "初始化已经完成,请拔出ic卡!", , "完成提示"
delphi代码:offset:=0;
len:= 128;
//Randomize
For i:= 1 To 128 do
begin
wi:=random(1) * 127;
databuff2[i-1]:= wi;
next;
end;Val(self.Edit1.Text,wi,code);
wig:= (wi div 128) * 2;
wid:= (wi - wig div 2) * 2;
databuff2[0]:= wid;
databuff2[7]:= wig;
wi:= 0;
For i:= 7 downTo 0 do
begin
databuff2[i]:= (databuff2[i] div 2) * 2;
If (wi Mod 2) = 1 Then
databuff2[i]:= databuff2[i] + 1; wi:= wi div 2;
next;
end;
databuff2[8]:= 5;
databuff2[9]:= 17;
st:= swr_24c01a_hex(icdev, offset, len, databuff2[0]);
If st < 0 Then
begin
application.MessageBox('写ic卡错!','错误提示');
st:= ic_exit(icdev);
Exit;
end;st:= ic_exit(icdev);
application.MessageBox('初始化已经完成,请拔出ic卡!','完成提示');
vb代码:Randomize
offset = 0
length = 128
For i = 1 To 128
wi = Rnd * 127
databuff2(i - 1) = wi
Next iwi = Val(txtFields(0).Text)
wig = (wi \ 128) * 2
wid = (wi - wig \ 2) * 2
databuff2(0) = wid
databuff2(7) = wig
wi = 0
For i = 7 To 0 Step -1
databuff2(i) = (databuff2(i) \ 2) * 2
If (wi Mod 2) = 1 Then
databuff2(i) = databuff2(i) + 1
End If
wi = wi \ 2
Next i
databuff2(8) = 5
databuff2(9) = 17
st = swr_24c01a_hex(icdev, offset, length, databuff2(0))
If st < 0 Then
MsgBox "写ic卡错!", , "错误提示"
st = ic_exit(icdev)
Exit SubEnd If
st = ic_exit(icdev)
MsgBox "初始化已经完成,请拔出ic卡!", , "完成提示"
delphi代码:offset:=0;
len:= 128;
//Randomize
For i:= 1 To 128 do
begin
wi:=random(1) * 127;
databuff2[i-1]:= wi;
next;
end;Val(self.Edit1.Text,wi,code);
wig:= (wi div 128) * 2;
wid:= (wi - wig div 2) * 2;
databuff2[0]:= wid;
databuff2[7]:= wig;
wi:= 0;
For i:= 7 downTo 0 do
begin
databuff2[i]:= (databuff2[i] div 2) * 2;
If (wi Mod 2) = 1 Then
databuff2[i]:= databuff2[i] + 1; wi:= wi div 2;
next;
end;
databuff2[8]:= 5;
databuff2[9]:= 17;
st:= swr_24c01a_hex(icdev, offset, len, databuff2[0]);
If st < 0 Then
begin
application.MessageBox('写ic卡错!','错误提示');
st:= ic_exit(icdev);
Exit;
end;st:= ic_exit(icdev);
application.MessageBox('初始化已经完成,请拔出ic卡!','完成提示');
begin
databuff2[i]:= (databuff2[i] div 2) * 2;
If (wi Mod 2) = 1 Then
databuff2[i]:= databuff2[i] + 1; wi:= wi div 2;
//next;
end;next 沒有用吧
len:= 128;
Randomize;
For i:= 1 To 128 do
begin
wi:=random(1) * 127;
databuff2[i-1]:= wi;
next;
end;如果是random(1);则wi 会始终为0。那么就不能随机付值了。