uses StrUtils;procedure TForm1.Button1Click(Sender: TObject); var s1,s2:string; begin s1:=LeftStr(Edit1.Text,length(Edit1.Text)-4); s2:=RightStr(Edit1.Text,4); Edit1.Text:=s1+Format('%.4d',[StrToInt(s2)+1]); end;
procedure TForm1.Button1Click(Sender: TObject); var i: integer; function MyFormat(i: integer): string; begin if i<0 then Result := '0000' else if i<10 then Result := '000' + IntToStr(i) else if i<100 then Result := '00' + IntToStr(i) else if i<1000 then Result := '0' + IntToStr(i) else if i<10000 then Result := IntToStr(i) else Result := '9999'; end; begin i := StrToInt(Copy(Edit1.Text, Length(Edit1.Text)-3, 4))+1; Edit1.Text := Copy(Edit1.Text, 1, Length(Edit1.Text)-4) + MyFormat(i); end;
To gzmhero(hihihi) ( ) :编译时产生如下错误信息: Project project1.exe raised exception class EConvertError with message ''' is not a valid integer value'.Process stopped.To liangqingzhi(老之) :编译时说不认识leftstr和rightstr.
To cuteant(我的这张旧船票是否还能登上你的客船|涛声是否依旧) :编译时产生如下错误信息: Project project1.exe raised exception class EConvertError with message ''' is not a valid integer value'.Process stopped.
To liangqingzhi(老之) :编译时说不认识leftstr和rightstr. ==== 在开头加 uses StrUtils;
To liangqingzhi(老之) ( ):加了后编译还是出现如下错误信息: Project project1.exe raised exception class EConvertError with message ''' is not a valid integer value'.Process stopped.
Edit里有没有输入SG-2006-02-18-0001这样的字符串?
To liangqingzhi(老之) ( ) :那是18号的,我想生成当天的日期,比如今天是21号,那么会动态产生SG-2006-02-21-0001,然后点击则生成SG-2006-02-21-0001,再点击生成SG-2006-02-21-0002。我的目的是想动态生成“SG-当天日期-自动加1”的格式。
if Edit1.Text='' then Eidt1.Text:='SG-'+FormatDateTime('yyyy-mm-dd',now)+'-0001' else Edit1.Text:=Copy(Edit1.Text,1,Length(Edit1.Text)-4)+Format('%.4d',[StrToInt(Copy(Edit1.Text,Length(Edit1.Text)-3,4))+1]);
var s1,s2:string;
begin
s1:=LeftStr(Edit1.Text,length(Edit1.Text)-4);
s2:=RightStr(Edit1.Text,4);
Edit1.Text:=s1+Format('%.4d',[StrToInt(s2)+1]);
end;
var
i: integer;
function MyFormat(i: integer): string;
begin
if i<0 then
Result := '0000'
else if i<10 then
Result := '000' + IntToStr(i)
else if i<100 then
Result := '00' + IntToStr(i)
else if i<1000 then
Result := '0' + IntToStr(i)
else if i<10000 then
Result := IntToStr(i)
else
Result := '9999';
end;
begin
i := StrToInt(Copy(Edit1.Text, Length(Edit1.Text)-3, 4))+1;
Edit1.Text := Copy(Edit1.Text, 1, Length(Edit1.Text)-4) + MyFormat(i);
end;
Project project1.exe raised exception class EConvertError with message ''' is not a valid integer value'.Process stopped.To liangqingzhi(老之) :编译时说不认识leftstr和rightstr.
Project project1.exe raised exception class EConvertError with message ''' is not a valid integer value'.Process stopped.
====
在开头加 uses StrUtils;
Project project1.exe raised exception class EConvertError with message ''' is not a valid integer value'.Process stopped.
procedure TForm1.Button1Click(Sender: TObject);
var
Str : string;
begin
Str := Copy(edit1.Text, Length(edit1.Text) -3, 4);
Str := Format('%.4d', [StrToIntDef(Str, 0) + 1]);
Str := Copy(edit1.Text, 1, Length(edit1.Text) -4) + Str;
edit1.Text := Str;
ShowMessage(Str);
end;
Eidt1.Text:='SG-'+FormatDateTime('yyyy-mm-dd',now)+'-0001'
else
Edit1.Text:=Copy(Edit1.Text,1,Length(Edit1.Text)-4)+Format('%.4d',[StrToInt(Copy(Edit1.Text,Length(Edit1.Text)-3,4))+1]);
procedure TForm1.Button1Click(Sender: TObject);
begin
Inc(n);
Edit1.Text := 'SG-' + FormatDateTime('yyyy-mm-dd-', Date) + FormatFloat('0000', n);
end;