Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Library: Object-Pascal / Delphi-Language (https://www.delphipraxis.net/35-library-object-pascal-delphi-language/)
-   -   Delphi Zahl im String erhöhen (https://www.delphipraxis.net/64107-zahl-im-string-erhoehen.html)

glkgereon 27. Feb 2006 17:14


Zahl im String erhöhen
 
Ich habe in letzter Zeit wahrlich abenteuerliche Code-Beispiele dafüe gesehen, daher hier eine kurze und einfach Variante...

Es geht darum, eine Zahl, die ganz vorne in einem String steht zu erhöhen.

Beispiel:
'27 Liter' um 13 erhöhen ergäbe dann '40 Liter'

Delphi-Quellcode:
function IncLeadingNumInStr(S: String; IncBy: Integer): String;
var Buf: String;
begin
  Buf:='';
  while S[1] in ['0'..'9'] do
    begin
    Buf:=Buf+S[1];
    Delete(S,1,1);
    if Length(S)=0 then Break;
    end;
  if Buf='' then Buf:='0';
  Result:=IntToStr(StrToInt(Buf)+IncBy)+S;
end;
Das einzige was dazu gebraucht wird sind die SysUtils (StrToInt/IntToStr)...

himitsu hat diese, optimierte, Version vorgeschlagen:
Delphi-Quellcode:
function IncLeadingNumInStr(S: String; IncBy: Integer): String;
var i: Integer;
begin
  i:=0;
  while (i < Length(S)) and (S[i + 1] in ['0'..'9']) do
    inc(i);
  Result := IntToStr(StrToIntDef(Copy(S, 1, i),0) + IncBy)
            + Copy(S, i + 1, MaxInt);
end;
[edit=Chakotay1308]himitsu's Code hinzugefügt. Mfg, Chakotay1308[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:09 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz