function IncLast(s:string):string; var ss:string; i,len:integer; begin len:=length(s); ss:=copy(s,len-1,2); i:=strtoint(ss); inc(i); ss:=inttostr(i); result:=copy(s,1,len-2)+ss; end;procedure TForm1.Button1Click(Sender: TObject); begin showmessage(inclast('b2008015-09')); end;
procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin if TryStrToInt(copy(edit1.Text,length(edit1.Text)-1,maxint),i) then edit2.Text:= FormatFloat('00',i+1); end;
其实原意是这样的
有一编号(edit1.text)为b2008015-09(也有能为b2008015-09-01,长度不确定,但最后两位肯定是数字)我想实现这个编号的下级首先我在数据里查找编号如为0则edit2.text编号为b2008015-09-01 adoquery2.Last; if adoquery2.RecordCount=0 then edit2.Text:=edit1.Text+'-'+'01' else ------该功能实现了 如果不为零则取最大的那位后面加1假如数据库中有 b2008015-09-01 b2008015-09-02 b2008015-09-03 b2008015-09-04 b2008015-09-05那当然edit2.Text=b2008015-09-06呀,怎么实现,简单的一句话
it民工的代码我试了一下,虽然我不理解,但能满足我的要求!非常不错 procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin if TryStrToInt(copy(edit1.Text,length(edit1.Text)-1,maxint),i) then edit2.Text:= FormatFloat('00',i+1); end;
var
ss:string;
i,len:integer;
begin
len:=length(s);
ss:=copy(s,len-1,2);
i:=strtoint(ss);
inc(i);
ss:=inttostr(i);
result:=copy(s,1,len-2)+ss;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(inclast('b2008015-09'));
end;
最好一句话
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
if TryStrToInt(copy(edit1.Text,length(edit1.Text)-1,maxint),i) then
edit2.Text:= FormatFloat('00',i+1);
end;
有一编号(edit1.text)为b2008015-09(也有能为b2008015-09-01,长度不确定,但最后两位肯定是数字)我想实现这个编号的下级首先我在数据里查找编号如为0则edit2.text编号为b2008015-09-01
adoquery2.Last;
if adoquery2.RecordCount=0 then
edit2.Text:=edit1.Text+'-'+'01'
else
------该功能实现了
如果不为零则取最大的那位后面加1假如数据库中有
b2008015-09-01
b2008015-09-02
b2008015-09-03
b2008015-09-04
b2008015-09-05那当然edit2.Text=b2008015-09-06呀,怎么实现,简单的一句话
adoquery2.Fields[2].AsInteger+1);
有人告诉我从这句话可以受到启发并解决,我没用过StringOfChar,不懂
我可以肯定的是这些编码第一个都为字母,后面全为数字,
这里StringOfChar就是返回length(adoquery2.Fields[2].asstring)), 长度的'0'的字符串,作为FormatFloat的第一个参数来使用。“我可以肯定的是这些编码第一个都为字母,后面全为数字”/XXXXXXXXXXXXXXXXXXXXXXXXXX'b2008015-09-01’因为中间有'-',这样的字符串是不能用上面的代码处理的,你的要求是最后2位转换成整数+1。
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
if TryStrToInt(copy(edit1.Text,length(edit1.Text)-1,maxint),i) then
edit2.Text:= FormatFloat('00',i+1);
end;
2 后俩位转成INT +1 +100 变成STRING取后俩位