Delphi中有2个Edit控件(edtBegin,edtEnd),在edtBegin,edtEnd输入规则有两种
如下:
(I)例如:
当在edtBegin中输入A0,在edtEnd中输入A10,表示用户输入的内容为A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,即用户只需在edtBegin,edtEnd中输入首尾两个字符就代表A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10的所有字符(字符的前面几位均相同,只有最后几位数字是按自然数顺序排列的,字符的数字部分一定是按照自然数排列)。。,当用户输入首尾两个字符时,就可以把所有字符插入到表中的SN字段中去,如:用户在edtBegin输入A0,在edtEnd输入A10,就可以把A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10全部插入到表中的SN字段中去(Edit中输入的字符的字母部分相同,具体是哪几位字母相同不确定,数字部分按edtBegin.Text,edtEnd.Text的数字部分递增)。
(II)当在edtBegin中输入A0,在edtEnd中输入D3,表示用户输入的内容为A0,B1,C2,D3,即Edit中字符的字母部分是按照A,B,C,D。Z排列的,数字部分是按照自然数升序排序的,如:用户在edtBegin输入A0,在edtEnd输入D3,就可以把A0,B1,C2,D3全部插入到表中SN字段中去哪位大侠帮忙写个Delphi代码。
如下:
(I)例如:
当在edtBegin中输入A0,在edtEnd中输入A10,表示用户输入的内容为A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,即用户只需在edtBegin,edtEnd中输入首尾两个字符就代表A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10的所有字符(字符的前面几位均相同,只有最后几位数字是按自然数顺序排列的,字符的数字部分一定是按照自然数排列)。。,当用户输入首尾两个字符时,就可以把所有字符插入到表中的SN字段中去,如:用户在edtBegin输入A0,在edtEnd输入A10,就可以把A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10全部插入到表中的SN字段中去(Edit中输入的字符的字母部分相同,具体是哪几位字母相同不确定,数字部分按edtBegin.Text,edtEnd.Text的数字部分递增)。
(II)当在edtBegin中输入A0,在edtEnd中输入D3,表示用户输入的内容为A0,B1,C2,D3,即Edit中字符的字母部分是按照A,B,C,D。Z排列的,数字部分是按照自然数升序排序的,如:用户在edtBegin输入A0,在edtEnd输入D3,就可以把A0,B1,C2,D3全部插入到表中SN字段中去哪位大侠帮忙写个Delphi代码。
str:string;
for str:=Ord(EdtBegin) to Ord(edtEnd) do//这个循环这样写好象不对,哪位同仁帮忙修改下
begin
with qry1 do
begin
Close;
SQL.Clear;
SQL.Text:='insert into BarcodeRepeated(SN) values(:str)';
Parameters.ParamByName('str').Value:=str;
try
ExecSQL;
ShowMessage('OK');
except
on e:Exception do
begin
ShowMessage('Error'+e.Message);
end;
end; end;
end;
...
str:=chr(i)+chr(Ord(EdtBegin.text[2])+ i-Ord(EdtBegin.text[1]));
...
(2)1A,1B,1C...1Z用户只在edtBegin,edtEnd输入1A,1Z就可以实现全部插入(数字部分相同,哪几位相同不确定,字母部分按顺序排列的循环插入)var
i:integer;
str:string;
//实现A1,B2,C3,D4.。。Z26的循坏
for i:=Ord(edtBegin.text[1]) to Ord(edtEnd.text[1]) do ...
str:=chr(i)+chr(Ord(edtBegin.text[2])+ i-Ord(edtBegin.text[1]));
针对以上情况,这个循坏应该怎么修改啊?
e:=strtoint(copy(EdtEnd.text,2,2));
for i:=b to e do
...
str:=chr(i)+inttostr(i);
或
str:=copy(EdtBegin.text,1,1))+inttostr(i);
...
e:=strtoint(copy(EdtEnd.text,2,2));
for i:=b to e do
...
str:=chr(i)+inttostr(i-b+1);
或
str:=copy(EdtBegin.text,1,1))+inttostr(i-b+1);
...