AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi länge zweier integer werte vergleichen
Thema durchsuchen
Ansicht
Themen-Optionen

länge zweier integer werte vergleichen

Ein Thema von gangs-taas · begonnen am 18. Apr 2009 · letzter Beitrag vom 19. Apr 2009
Antwort Antwort
Seite 3 von 3     123   
Benutzerbild von himitsu
himitsu
Online

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

Re: länge zweier integer werte vergleichen

  Alt 18. Apr 2009, 20:33
neee, ich weiß, daß Format('%8.2d', [123]) einem Format('%*.*d', [8, 2, 123]) entspricht, daher dachte ich jetzt einfach mal, das Format('%.5d', [123]) einem Format('%.*d', [5, 123]) entspräche ... hab's aber nicht getestet

vielleicht geht ja ein
String1 := Format('%*.*d', [0, MaxLen, Variable1]) die OH meint zumindestens sowas:
Zitat:
Die Bezeichner für Index, Breite und Genauigkeit können direkt durch Angabe eines Strings mit dezimalen Ziffern (z.B. "%10d") oder indirekt mit Hilfe von Sternchen (z.B. "%*.*f") angegeben werden. Im letzteren Fall wird das Argument, das in der Argumentliste auf das Sternchen folgt (es muss sich dabei um einen Integerwert handeln), als tatsächlicher Wert verwendet. Beispiel:

Format('%*.*f', [8, 2, 123.456]);
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#22

Re: länge zweier integer werte vergleichen

  Alt 18. Apr 2009, 20:36
Meine Variante mit dem "Zwischenformat" geht jedenfalls (ich war neugierig und habe es dann selbst ausprobiert). Der Fehler muss woanders liegen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
gangs-taas

Registriert seit: 24. Mär 2009
364 Beiträge
 
#23

Re: länge zweier integer werte vergleichen

  Alt 18. Apr 2009, 20:54
mein quelltext

fehlersuche xD mit breakpoints komm ich auf die zeile mit "%.2d"

aber hier mein ganzer code

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
Vza,Vzb, Vzz : real;
a,x,c,d,b : integer;
Va, Vb, VZ: integer;
MaxLen : Integer;
Vzza, vzzz : String;
FormatString : String;
begin
a:= StrToInt(Edit2.Text[1]);
x:= StrToInt(Edit2.Text[2]);
b:= StrToInt(Edit2.Text[3]);
c:= StrToInt(Edit2.Text[4]);
d:= StrToInt(Edit2.Text[5]);
Vza := a*sqr(x) + b*x + c;
Va := (Round(Vza));
x := x+d;
Vzb := a*sqr(x) + b*x + c;
Vb := (Round(Vzb));
x := x + (26*d);
Vzz := a*sqr(x) + b*x + c;
Vz := (Round(Vz));
   MaxLen := Max(Length(IntToStr(Va)), Length(IntToStr(Vz)));
   FormatString := Format('%%.%dd',[MaxLen]);
   Vzza := Format(FormatString, [Vzza]);
   Vzzz := Format(FormatString, [Vzzz]);
Memo1.Text := 'a = ' + Vzza + #13#10 + 'B = ' + IntToStr(Vb) + #13#10 + 'Z = ' +Vzzz;
ich hoffe ihr könnt damit was anfangen xD also Vzza und Vzzz sind die variablen die vorher "variable1" und "variable2" waren ...
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#24

Re: länge zweier integer werte vergleichen

  Alt 18. Apr 2009, 20:59
Delphi-Quellcode:
Vzza := Format(FormatString, [Va]);
Vzzz := Format(FormatString, [Vz]);
Sinnige Variablenbezeichner sind übrigens Gold wert.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

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

Re: länge zweier integer werte vergleichen

  Alt 18. Apr 2009, 21:14
Zitat von DeddyH:
Sinnige Variablenbezeichner sind übrigens Gold wert.
und wie, wobei eine hübsche Einrükung auch gut ankommt

und die ganzen Round sind "sinnlos", da es eh schon integer sind

Delphi-Quellcode:
...
Vz := (Round(Vz));
MaxLen := Max(Length(IntToStr(Va)), Length(IntToStr(Vz)));
FormatString := Format('a = %%.%0:dd'#13#10'B = %%d'#13#10'Z = %%.%0:dd', [MaxLen]);
Memo1.Text := Format(FormatString, [Va, Vb, Vz]);
obwohl ich mich frag, was bei den * falsch sein soll
denn ich hab es grad geprüft (in D7) und es gehen beide Varianten.
Delphi-Quellcode:
...
Vz := (Round(Vz));
MaxLen := Max(Length(IntToStr(Va)), Length(IntToStr(Vz)));
Memo1.Text := Format('a = %.*d'#13#10'B = %d'#13#10'Z = %.*d', [MaxLen, Va, Vb, MaxLen, Vz]);

// bzw.

...
Vz := (Round(Vz));
MaxLen := Max(Length(IntToStr(Va)), Length(IntToStr(Vz)));
Memo1.Text := Format('a = %*.*d'#13#10'B = %d'#13#10'Z = %*.*d', [0, MaxLen, Va, Vb, 0, MaxLen, Vz]);
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#26

Re: länge zweier integer werte vergleichen

  Alt 18. Apr 2009, 21:32
Es hat ja niemand gesagt, dass die * falsch waren. Der Fehler lag ja darin, dass er %d auf String anwenden wollte.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
gangs-taas

Registriert seit: 24. Mär 2009
364 Beiträge
 
#27

Re: länge zweier integer werte vergleichen

  Alt 18. Apr 2009, 22:06
danke probier das lgeich aus

und zu den variablen namen die ham schon nen sinn.
aber da meine idee noch sehr wenig ausgereift ist hat's nicht viel sinn da genau jetzt schon zu beschreiben xD


danke aber für eure hilfe


edit
es klappt aber immer noch nicht.
hab das mal mit (random) zufälligen zahlen ausprobiert und dann kommt raus

a = 616
B = 2093
Z = 000


wobei ja Z eigendlich was anderes als 000 sein sollte (was es aber egal bei welcher zufälligen zahl ) ist
und a sollte ja eigendlich 0616 sein !!

also klapps nicht !
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#28

Re: länge zweier integer werte vergleichen

  Alt 18. Apr 2009, 22:24
Delphi-Quellcode:
var
  lLen: integer;
  s1, s2: string;
begin
  s1 := IntToStr(a);
  s2 := IntToStr(b);

  lLen := max(length(s1), length(s2));
  
  s1 := StringOfChar(' ', lLen-length(s1)) + s1;
  s2 := StringOfChar(' ', lLen-length(s2)) + s2;

  Memo1.Lines.Add(s1);
  Memo1.Lines.Add(s2);
end;
  Mit Zitat antworten Zitat
gangs-taas

Registriert seit: 24. Mär 2009
364 Beiträge
 
#29

Re: länge zweier integer werte vergleichen

  Alt 19. Apr 2009, 13:29
danke
nun geht es
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 08:58 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