Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.166 Beiträge
 
Delphi 12 Athens
 
#9

Re: länge zweier integer werte vergleichen

  Alt 18. Apr 2009, 14:41
und mit ein paar Logarithmen (oder so) könnte man auch mathematisch rausbekommen welche Zahl wie lang ist ... OK, oder über IntToStr+Length (is nur langsamer)

Delphi-Quellcode:
MaxLen = {größte Länge der beiden Zahlen als String};
String1 := Format('%.*d', [MaxLen, Variable1]);
STring2 := Format('%.*d', [MaxLen, Variable2]);
voll unperformat, aber es läuft:
Delphi-Quellcode:
String1 := IntToStr(Variable1);
STring2 := IntToStr(Variable2);
While Length(String1) < Length(String2) do String1 := '0' + String1;
While Length(String2) < Length(String1) do String2 := '0' + String2;


[add]
Delphi-Quellcode:
// einfach

MaxLen = Max(Length(IntToStr(Variable1)), Length(IntToStr(Variable2)));
String1 := Format('%.*d', [MaxLen, Variable1]);
String2 := Format('%.*d', [MaxLen, Variable2]);

// schnell(er)

Function NumLen(i: Integer): Integer;
  Begin
    If i = 0 Then
      Result := 1
    Else If i > 0 Then
      Result := Trunc(Log10(Variable1)) + 1
    Else
      Result := Trunc(Log10(-Variable1)) + 1;
  End;

MaxLen = Max(NumLen(Variable1), NumLen(Variable2));
String1 := Format('%.*d', [MaxLen, Variable1]);
String2 := Format('%.*d', [MaxLen, Variable2]);
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat