AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi wie die letzten 2 zeichen eines integer Wertes ermitteln

wie die letzten 2 zeichen eines integer Wertes ermitteln

Ein Thema von Dragon Haerd · begonnen am 21. Sep 2008 · letzter Beitrag vom 12. Mai 2020
Antwort Antwort
Seite 1 von 2  1 2   
Dragon Haerd

Registriert seit: 21. Sep 2008
Ort: Berlin
2 Beiträge
 
#1

wie die letzten 2 zeichen eines integer Wertes ermitteln

  Alt 21. Sep 2008, 23:38
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
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: wie die letzten 2 zeichen eines integer Wertes ermitteln

  Alt 21. Sep 2008, 23:46
"i mod 100"?
  Mit Zitat antworten Zitat
mr_emre_d
(Gast)

n/a Beiträge
 
#3

Re: wie die letzten 2 zeichen eines integer Wertes ermitteln

  Alt 22. Sep 2008, 02:50
Habs nicht getestet aber so müsste das funzen :
Code:
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;
Aufruf wäre dann so:
Code:
  ShowMessage( IntToStr( GetLast2Values( 123 ).X ) ); // --> 2
  ShowMessage( IntToStr( GetLast2Values( 123 ).Y ) ); // --> 3
MfG
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#4

Re: wie die letzten 2 zeichen eines integer Wertes ermitteln

  Alt 22. Sep 2008, 03:23
Ieks...

Besser:
Delphi-Quellcode:
function GetLast2Values(Int: Integer): TPoint;
begin
  Result.X := Int mod 10;
  Result.Y := (Int div 10) mod 10;
end;
  Mit Zitat antworten Zitat
Dragon Haerd

Registriert seit: 21. Sep 2008
Ort: Berlin
2 Beiträge
 
#5

Re: wie die letzten 2 zeichen eines integer Wertes ermitteln

  Alt 22. Sep 2008, 12:56
Zitat von Dax:
"i mod 100"?
danke manchmal sieht man den Wald vor lauter bäumen nicht
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
  Mit Zitat antworten Zitat
gemy

Registriert seit: 17. Feb 2019
31 Beiträge
 
#6

AW: wie die letzten 2 zeichen eines integer Wertes ermitteln

  Alt 10. Mai 2020, 18:33
Habe das auch eben gebraucht. Habe es so gelöst:

Gegeben : Zufällige Zahl zwischen 1000 und 9999


Delphi-Quellcode:
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;
Habe es mit mehreren Zahlen getestet, 1000, 9999 funktioniert einwandfrei.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
36.128 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: wie die letzten 2 zeichen eines integer Wertes ermitteln

  Alt 10. Mai 2020, 19:05
Du willst jetzt also für einen Integer über unrundbare Fließkommazahlen gehen?

Delphi-Referenz durchsuchenDIV und Delphi-Referenz durchsuchenMOD und Delphi-Referenz durchsuchenDivMod

Delphi-Quellcode:
d00X = i mod 10;
d0X0 = (i div 10) mod 10;
dX00 = (i div 100) mod 10;
...

Delphi-Quellcode:
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;
...
Bzw. hier im Beispiel naturürlich, für Beide zusammen.
LastZwo := i mod 100;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (10. Mai 2020 um 19:22 Uhr)
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
830 Beiträge
 
#8

AW: wie die letzten 2 zeichen eines integer Wertes ermitteln

  Alt 10. Mai 2020, 19:15
Wenn's nur um die Zeichen als ASCII-Zeichen geht:
Delphi-Quellcode:
  if length(inttostr(i))>2 then
    result:=copy(inttostr(i), length(inttostr(i))-2, 2) else
    result:=inttostr(i);
oder als Int
Delphi-Quellcode:
  if length(inttostr(i))>2 then
    result:=inttostr(copy(inttostr(i), length(inttostr(i))-2, 2)) else
    result:=i;
Nicht so "mathematisch" gelöst, aber sollte funktionieren.
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
36.128 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: wie die letzten 2 zeichen eines integer Wertes ermitteln

  Alt 10. Mai 2020, 19:24
PS: RightStr(IntToStr(i), 2) , bzw. 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.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (11. Mai 2020 um 01:30 Uhr)
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
830 Beiträge
 
#10

AW: wie die letzten 2 zeichen eines integer Wertes ermitteln

  Alt 11. Mai 2020, 00:32
an RightStr hab ich gar nicht gedacht
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf