以前用DELPHI6,前一段时间扔下了。现在用DELPHI7,有点小困难,请大家帮忙!!谢谢!!
在下面的一段代码中,我想实现条码校验位的计算。在执行的时候老提示一个“Value assigned to 'i' never used”但我的I用了啊!!
在D6中从来没遇到过这种情况,是D7的新东东???、请大虾帮忙,同时指点一下学习DELPHI7中的一些注意事项。不胜感激!!!!代码如下:procedure TForm1.Button1Click(Sender: TObject);
var
num: array of integer;
i,bcd,j:integer;
s:string;
begin
bcd:=0;
i:=0;
j:=0;
num:=null;
s:=form1.Edit1.Text;
// label5.Caption:=s; //测试用
if edit1.Text<>'' then
begin
for i :=0 to length(s) do
begin
num[i]:=strtoint(s[i]) ;
j:=j+1 ;
if j mod 2 =0 then
bcd:=bcd+num[i]*3
else
bcd:=bcd+num[i]; end;
bcd:=(10-bcd mod 10) mod 10 ;
edit2.Text:=inttostr(bcd); //校验位
edit3.Text:=edit1.Text+edit2.Text; //完整条码 end
else
showmessage('老大!条码是空的!!');end;
在下面的一段代码中,我想实现条码校验位的计算。在执行的时候老提示一个“Value assigned to 'i' never used”但我的I用了啊!!
在D6中从来没遇到过这种情况,是D7的新东东???、请大虾帮忙,同时指点一下学习DELPHI7中的一些注意事项。不胜感激!!!!代码如下:procedure TForm1.Button1Click(Sender: TObject);
var
num: array of integer;
i,bcd,j:integer;
s:string;
begin
bcd:=0;
i:=0;
j:=0;
num:=null;
s:=form1.Edit1.Text;
// label5.Caption:=s; //测试用
if edit1.Text<>'' then
begin
for i :=0 to length(s) do
begin
num[i]:=strtoint(s[i]) ;
j:=j+1 ;
if j mod 2 =0 then
bcd:=bcd+num[i]*3
else
bcd:=bcd+num[i]; end;
bcd:=(10-bcd mod 10) mod 10 ;
edit2.Text:=inttostr(bcd); //校验位
edit3.Text:=edit1.Text+edit2.Text; //完整条码 end
else
showmessage('老大!条码是空的!!');end;
bcd:=0;
i:=0;//这个I不要赋值的。
j:=0;
num:=null;
s:=form1.Edit1.Text;
bcd:=0;
//i:=0;//这个I不要赋值的。把这行去掉
j:=0;
num:=null;
s:=form1.Edit1.Text;
num: array of integer;
i,bcd,j:integer;
s:string;
begin
bcd:=0;
j:=0;
setlength(num,80);
s:=form1.Edit1.Text; for i:=0 to 79 do
begin
num[i]:=0;
end;
// label5.Caption:=s; //测试用
if edit1.Text<>'' then
begin
for i :=0 to length(s)-1 do
begin
num[i]:=strtoint(s[i+1]) ;
j:=j+1 ;
if j mod 2 =0 then
bcd:=bcd+num[i]*3
else
bcd:=bcd+num[i]; end;
bcd:=(10-bcd mod 10) mod 10 ;
edit2.Text:=inttostr(bcd); //校验位
edit3.Text:=edit1.Text+edit2.Text; //完整条码 end
else
showmessage('老大!条码是空的!!');
end;