我要完成的是:
接受客户输入一个字符串,分别归类
数字的按照他输入的顺序归数字一类放到一个变量里
字符的按照他输入的顺序归字符一类放到一个变量里他有可能输入的是L00001
归类以后数字还要自动加1,但以加1,00001就变成了2前面的0没有了有没有自动填充的,规定几个字符不够的用0补
有什么好的办法也可以说说
接受客户输入一个字符串,分别归类
数字的按照他输入的顺序归数字一类放到一个变量里
字符的按照他输入的顺序归字符一类放到一个变量里他有可能输入的是L00001
归类以后数字还要自动加1,但以加1,00001就变成了2前面的0没有了有没有自动填充的,规定几个字符不够的用0补
有什么好的办法也可以说说
解决方案 »
- 网络异常时,idftp下载的压缩文件不正确解压!
- WEB方式的应用程序相对于一般的应用程序有什么优势?非常急,请给给意见
- 帮忙:在delphi中使用sql server 里的nvarchar类型的字段问题
- http://report.go.3322.org/ 通用报表程序,已经加载标题栏设计程序
- 评价该网页?
- TrayIcon.ShowBalloonHint怎么用
- 高分求解关于DBGrid的指定行的颜色设置问题!!!
- 求DLL与调用进程互通数据方法(很多的,什么类型都有),在最好有人能详细说说
- 有谁愿意开发这样的软件?
- 恳请Pascal 和数据结构 高手指教,我这个类哪里出错了,为什么Create不了
- delphi指针程序运行出错
- 求算法
format函数应该可以
返回的结果是:00000001(总共八位,前面不够补0)
copy('00000000',1,8-length(str))+str
//param strNum 待补零数字
// iValidNum 补零位数
function FillZero(strNum: string; iValidNum: Integer);
var
i : Integer;
strZero : string;
begin
strZero := '';
for i := 0 to iValidNum - 1 do
strZero := strZero + '0'; Result := RightStr(strZero + strNum, iValidNum);
end;
begin
Result := StringOfChar('0', iValidNum - Length(strNum)) + strNum;
Delete(Result, 1, Length(strNum) - iValidNum);
end;
function IsNum(c:char):boolean;
begin
if c in ['0'..'9'] then
result:=true else result:=false;
end;procedure DevStr(str:string;var numStr,StrStr:string);
var
i,index:integer;
begin
index:=0;
for i:=length(str) downto 1 do
if not IsNum(str[i]) then
begin
index:=i;
break;
end;
if index=length(str) then//如果最后一个字符是字符,那么退出
begin
numStr:='';
strstr:=str;
exit;
end;
if index=0 then//如果全部是数字,那么退出
begin
numstr:=str;
strstr:='';
exit;
end;
strstr:=copy(str,1,index);
delete(str,1,index);
numstr:=str;
end;function GetIncNumStr(numstr:string):string;
var
len,len1:integer;
n,i:integer;
s:string;
begin
len:=length(numstr);
n:=strtoint(numstr)+1;
s:=inttostr(n);
len1:=length(s);
for i:=1 to len-len1 do
s:='0'+s;
result:=s;
end;function IncStr(s:string):string;
var
cs,ns:string;
begin
DevStr(s,ns,cs);
result:=cs+GetIncNumStr(ns);
end;procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(incstr('L00001'));
end;
function IncChar(var C: Char): Boolean;
begin
Result := C = '9';
if Result then
C := '0'
else
if C in ['0'..'8'] then
Inc(C);
end;var
L: Integer;
begin
Result := S;
L := Length(Result);
while IncChar(Result[L]) do
Dec(L);
end;IncStr('L001');
IncStr('L999');