![]() |
wie die letzten 2 zeichen eines integer Wertes ermitteln
Ich suche eine Funktion die es mir ermöglicht die letzten 2 zeichen eines Integer wertes auzulesen ich habe zwar schon stundenlang gesucht aber leider nichts gefunden
in php habe ich das problem so gelöst das ich zuerst die länge des integerwertes ausgelesen habe und dann diesen wert um 2 vermindert habe als nächsten schritt habe ich dann den wert an der so errechneten stelle geteilt und den ersten teil weggeschnitten ich hoffe ihr könnt mir helfen P.S: ich wäre euch dankbar wenn ihr hier nicht gleich mit komplizierter delphi fachsprache kommt denn ich schreibe in delphi erst seit 2 einhalb wochen P.P.S.: ich verwende Delphi 7 |
Re: wie die letzten 2 zeichen eines integer Wertes ermitteln
"i mod 100"?
|
Re: wie die letzten 2 zeichen eines integer Wertes ermitteln
Habs nicht getestet aber so müsste das funzen :
Code:
Aufruf wäre dann so:
function GetLast2Values( const Int: Integer ): TPoint; // TPoint.X = Vorletzter Wert, TPoint.Y = Letzter Wert
var buf: String; begin buf := IntToStr( Int ); Result := Point( 0, 0 ); if Length( Buf ) > 1 then begin Result.X := StrToInt( Buf[Length(Buf)-1] ); Result.Y := StrToInt( Buf[Length(Buf)] ); end else MessageDLG( 'Wert hat nur 1 Zeichen!', mtError, [mbOK], 0 ); end;
Code:
MfG
ShowMessage( IntToStr( GetLast2Values( 123 ).X ) ); // --> 2
ShowMessage( IntToStr( GetLast2Values( 123 ).Y ) ); // --> 3 |
Re: wie die letzten 2 zeichen eines integer Wertes ermitteln
Ieks...
Besser:
Delphi-Quellcode:
function GetLast2Values(Int: Integer): TPoint;
begin Result.X := Int mod 10; Result.Y := (Int div 10) mod 10; end; |
Re: wie die letzten 2 zeichen eines integer Wertes ermitteln
Zitat:
den anderen beiden auch ein großes Dankeschön aber da ich die beiden letzten 2 Zeichen sowiso zusammenhängend brauche werde ich "int mod 100" nehmen da das am kürzesten ist mfg Niklas |
AW: wie die letzten 2 zeichen eines integer Wertes ermitteln
Habe das auch eben gebraucht. Habe es so gelöst:
Gegeben : Zufällige Zahl zwischen 1000 und 9999
Delphi-Quellcode:
Habe es mit mehreren Zahlen getestet, 1000, 9999 funktioniert einwandfrei.
procedure TForm1.Button1Click(Sender: TObject);
var zahl, nr1, nr2,nr3,nr4: integer; begin randomize; zahl :=randomRange(1000-9999); Nr1 := trunc(zahl/ 1000); //liefert erste Stelle Nr2 := trunc((frac(zahl/ 1000)*10)); //liefert zweite Stelle Nr3 := trunc((frac(zahl/ 100)*10)); // dritte Nr4 := trunc((frac(zahl/ 10)*10)); // vierte end; |
AW: wie die letzten 2 zeichen eines integer Wertes ermitteln
Du willst jetzt also für einen Integer über unrundbare Fließkommazahlen gehen?
![]() ![]() ![]()
Delphi-Quellcode:
d00X = i mod 10;
d0X0 = (i div 10) mod 10; dX00 = (i div 100) mod 10; ...
Delphi-Quellcode:
Bzw. hier im Beispiel naturürlich, für Beide zusammen.
DivMod(i, 10, i, d00X); // d00X := i mod 10; i := i div 10;
DivMod(i, 10, i, d0X0); // d0X0 := i mod 10; i := i div 10; DivMod(i, 10, i, dX00); // dX00 := i mod 10; i := i div 10; ...
Delphi-Quellcode:
LastZwo := i mod 100;
|
AW: wie die letzten 2 zeichen eines integer Wertes ermitteln
Wenn's nur um die Zeichen als ASCII-Zeichen geht:
Delphi-Quellcode:
oder als Int
if length(inttostr(i))>2 then
result:=copy(inttostr(i), length(inttostr(i))-2, 2) else result:=inttostr(i);
Delphi-Quellcode:
Nicht so "mathematisch" gelöst, aber sollte funktionieren.
if length(inttostr(i))>2 then
result:=inttostr(copy(inttostr(i), length(inttostr(i))-2, 2)) else result:=i; |
AW: wie die letzten 2 zeichen eines integer Wertes ermitteln
PS:
Delphi-Quellcode:
, bzw.
RightStr(IntToStr(i), 2)
Delphi-Quellcode:
,
RightStr({'0' +} IntToStr(Abs(i)), 2)
auch wenn eine mathematische Lösung ein bissl "optimaler" arbeitet, als jegliche "aufwändige" Stringmanipulation. Und so als Tipp, probier deine Lösung mal mit einer negativen Zahl. :zwinker: |
AW: wie die letzten 2 zeichen eines integer Wertes ermitteln
:-D an RightStr hab ich gar nicht gedacht
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:56 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