Autor |
Beitrag |
hibbert
      
Beiträge: 1007
WinServer2003, Win XP, Linux
D6 Pers, D05
|
Verfasst: Sa 11.01.03 01:22
hallo,
eigendlich ist es kein richtiges problem, ich möchte nur wissen, ob ich das auch kürzer fassen kann.
Quelltext 1: 2: 3:
| if(auto.Left=83) or (auto.Left=84) or(auto.Left=85)then begin end; |
gibt es da nicht etwas mit
Quelltext 1: 2: 3:
| if auto.left=83..85 then begin end; |
ich hoffe, dass es da soetwas gibt.
mfg hibbert
_________________ I kunnen väl svara endast ja eller nej
Om i viljen eller nej
|
|
Brueggendiek
      
Beiträge: 304
Win 98, Win98SE, Win XP Home
D5 Std
|
Verfasst: Sa 11.01.03 01:34
Hallo Hibbert!
Im Prinzip geht das - mit SETs.
Quelltext 1: 2: 3:
| if auto.left in [ 83..85 ] then begin end; |
Es ist übrigens auch möglich, unzusammenhängende Werte zu schreiben, z.B.:
Quelltext 1: 2: 3:
| if auto.left in [1, 10..15, 99] then begin end; |
Die Bedingung ist erfüllt, wenn der Wert 1, 99 oder im Bereich 10 bis 15 ist.
Die Angaben in der eckigen Klammer bilden eine Mengen-Konstante.
Gruß
Dietmar Brüggendiek
|
|
hibbert 
      
Beiträge: 1007
WinServer2003, Win XP, Linux
D6 Pers, D05
|
Verfasst: Sa 11.01.03 12:34
Hey, vielen dank Brueggendiek, damit kann man echt zeit sparen !
mfg hibbert
_________________ I kunnen väl svara endast ja eller nej
Om i viljen eller nej
|
|
Klabautermann
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: Sa 11.01.03 14:27
Hallo,
hibbert hat folgendes geschrieben: | vielen dank Brueggendiek, damit kann man echt zeit sparen !  |
wie man es sieht. Dein Programm ist mit der OR Variante schneller als mit der IN Variante.
Die frage ist, ob dich die paar Taktzyklen bei heutigen Rechnern stören.
Gruß
Klabautermann
|
|
hibbert 
      
Beiträge: 1007
WinServer2003, Win XP, Linux
D6 Pers, D05
|
Verfasst: Sa 11.01.03 15:22
hallo,
Klabautermann, da musst du mich falsch verstanden haben. das mit
Zitat: | vielen dank Brueggendiek, damit kann man echt zeit sparen ! |
war anders gemaint, und zwar beim eintippen.
es ist ja wohl ein unterschied wenn ich eintippe
Quelltext 1: 2: 3:
| if (auto.left=20)or(auto.left=21)or (auto.left=22)or (auto.left=23)or (auto.left=24)or (auto.left=25)or (auto.left=26)or (auto.left=27)...or (auto.left=50) then begin end; |
oder wenn ich das eintippe:
Quelltext 1: 2: 3:
| if auto.left in [20..50] then begin end; |
da hab ich doch dann zeit gespart oder ?
mfg hibbert
_________________ I kunnen väl svara endast ja eller nej
Om i viljen eller nej
|
|
smiegel
      
Beiträge: 992
Erhaltene Danke: 1
WIN 7
D7 Prof., C#, RAD XE Prof.
|
Verfasst: Sa 11.01.03 16:12
Hallo,
folgendes geht auch:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| case auto.left of 20..50: begin ... TuIrgendwas; ... end; end; // case |
Dieser Code ist, wenn ich mich nicht täusche, performanter als der Mengenvergleich.
_________________ Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)
|
|
Klabautermann
      

Beiträge: 6366
Erhaltene Danke: 60
Windows 7, Ubuntu
Delphi 7 Prof.
|
Verfasst: Sa 11.01.03 16:30
Hallo,
hibbert hat folgendes geschrieben: | Klabautermann, da musst du mich falsch verstanden haben. das mit |
nein ich habe dich schon richtig verstanden. Ich wollte dich nur auf die negativen Seiten der Mengenoperationen hinweisen. Nur um das klar zu stellen: Ich verwende in solchen Fällen auch Mengenoberationen.
smiegel hat folgendes geschrieben: | Dieser Code ist, wenn ich mich nicht täusche, performanter als der Mengenvergleich. |
Ich weiß nicht wie Delphi hier Optimiert, aber für mich ist auch das ein Mengenvergleich.
Gruß
Klabautermann
|
|
|