Shouldn't be that difficult. Try the code below (please note - written 
in mail client!)

function IncrementComplexNumber(n:string):string;
var
  Before, Number, NewNumber, After:string;
  i,t:Integer;
begin
  // Init
  Before := '';
  Number := '';
  After := '';
  t := 1;
  // read the string
  for i:=1 to Length(n) do
    case t of
      1: if n[i] in ['0'..'9'] then
           begin
             Number := n[i];
             t := 2;
           end
         else Before := Before + n[i];
      2: if n[i] in ['0'..'9'] then Number := Number + n[i]
          else
            begin
               After := n[i];
               t := 3;
            end;
       3: After := After + n[i];
    end;
  // Found any digits?
  if Number = '' then Result := Before
  else
    begin
      // I did find something!
      NewNumber := IntToStr(StrToInt(Number)+1);
      while Length(NewNumber) < Length(Number) do
         NewNumber := '0' + NewNumber;
       Result := Before + NewNumber + After;
    end;
end;

Mike Lucek wrote:
> Does any one have a function that allows the incrementing of a number with
> leading zeros expressed as a string. For example, I have a string
> AB-CDE-FG1-003, I want to increment that string to AB-CDE-FG1-004, or 005
> and so on. The maximum incremental value would be AB-CDE-FG1-999. Any
> suggestions would be appreciated.
>
> Mike 
>
> _______________________________________________
> Delphi mailing list -> [email protected]
> http://www.elists.org/mailman/listinfo/delphi
>
>   

_______________________________________________
Delphi mailing list -> [email protected]
http://www.elists.org/mailman/listinfo/delphi

Reply via email to