![]() |
Delphi-Version: 2010
string inkrementieren
Hallo zusammen,
wahrscheinlich ist es nur eine Bagatelle aber ich suche nach einer Möglichkeit, eine Zahl, die in einem string gespeichert ist, zu inkrementieren. Beispiel: ZahlAlsString := '0470726'; die nächste Zahl sollte dann '0470727' sein. Das Problem hierbei für mich ist, wenn ich die Zahl als Integer umwandle verliere ich die führende Null. Da diese Zahl Bestandteil eines Barcodes sein soll muss die führende Null bleiben. Wie mache ich sowas, gibt's eine fertige Funktion oder hat jemand eine selbst geschriebene für mich? |
AW: string inkrementieren
Dann musst du die 0 bei der Rückwandlung in einen string halt wieder anfügen ( Format)
|
AW: string inkrementieren
merk dir wie viele Stellen der Barcode hatte. Dann umwandeln, erhöhen und dann mit Format und führenden 0en zurückwandeln.
Delphi-Quellcode:
function IncCode(Code: String): String;
var len: Integer; Val: Integer; begin len := Length(Code); Val := StrToInt(Code); inc(Val); Result := Format('%.'+IntToStr(Len)+'d',[Val]); end; |
AW: string inkrementieren
Zitat:
Zitat:
Würde dein String in ein Integer casten und dann inkrementieren und dann zurückwandeln. Schreib mir ne PM dann schick ich dir meine Methode. Ausser jmd will die hier sehen?! |
AW: string inkrementieren
Die wäre u.U. auch für andere interessant, obwohl Format() das ja auch kann
|
AW: string inkrementieren
..
Delphi-Quellcode:
procedure incBCStr(var AStr: string);
var i, l: Integer; begin l := Length(AStr); AStr := IntToStr(StrToInt64(AStr)+1); for i := Length(AStr) to l-1 do AStr := '0' + AStr; end; |
AW: string inkrementieren
Zitat:
|
AW: string inkrementieren
Zitat:
|
AW: string inkrementieren
Ich habe dafür eine Funktion, die
![]() Dabei gibt man an, auf wieviel Zeichen der String aufgefüllt werden soll (pad_size), mit welcher zeichenfolge aufgefüllt werden soll(pad_string) und dann noch, ob links oder rechts aufgefüllt werden soll (pad_type 0/1)
Delphi-Quellcode:
// pad a string to pad_size with pad_string characters (php-like)
function str_pad(const Input : string; pad_size : integer; const pad_string : string = '0'; const pad_type : Integer = 0) : string ; var i : integer; dif : Integer ; c: char ; begin Result := Input; if Length(Input) < pad_size then begin dif := pad_size - Length(Input) ; SetLength(Result,pad_size) ; case pad_type of // STR_PAD_LEFT 0: begin for i := 1 to dif do begin if i <= Length(pad_string) then c := pad_string[i] else c := pad_string[Length(pad_string)] ; Result[i] := c ; end; try for i := dif+1 to pad_size do Result[i] := Input[i-dif] ; except end; end; // STR_PAD_RIGHT 1: begin for i := Length(Input)+1 to pad_size do begin if i-dif <= Length(pad_string) then c := pad_string[i-dif] else c := pad_string[Length(pad_string)] ; Result[i] := c ; end; try for i := 1 to dif do Result[i] := Input[i] ; except end; end; end; end; end; |
AW: string inkrementieren
Zitat:
Delphi-Quellcode:
.
Format( '%.*d', [ Len, Val ] )
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz