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代码。

解决方案 »

  1.   

    var
      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;
      

  2.   

    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]));
    ...
      

  3.   

    楼上的同仁,,,那如果是A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10这样的循环怎么搞啊,字符出现的位置不确定,但最后几位一定是连续数字
      

  4.   

    (1)如果是A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10这样的循环怎么搞啊,字符出现的位置不确定,但最后几位一定是连续数字的循坏,,,用户只在edtBegin,edtEnd输入A0,A10首尾两个字符就可以实现全部插入;
    (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]));

    针对以上情况,这个循坏应该怎么修改啊?
      

  5.   

    b:=strtoint(copy(EdtBegin.text,2,2));
    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);
    ...
      

  6.   

    b:=strtoint(copy(EdtBegin.text,2,2));
    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);
    ...