![]() |
Re: IF Abfrage
Du hast in Deiner Abfrage 8 Bedingungen, zusammengefasst in 4*2 welche mit OR verknüpft sind.
Sprich, wenn eine Deiner 4 Bedingungen zutrifft, dann wird der Rest ausgeführt. Und dabei ist es ganz egal, ob das die erste, zweite, dritte oder vierte Bedingung ist. So, wie der Code dort steht, werden auf jeden Fall alle Bedingungen geprüft, bis eine True ergibt. Edit: zu prüfenden Ausdruck markieren und mit STRG+F7 auswerten. |
Re: IF Abfrage
genau: nenn uns doch mal bitte die variablenwerte für
Merkmal, ID, Temp1.ID, Temp2.ID, Temp1.Name, Temp2.Name, Temp1.Typ, Temp2.Typ, Temp1.Kategorie, Temp2.Kategorie |
Re: IF Abfrage
Ich werde es nochmal Probieren zu erklären!
Ich will mit dieser Abfrage erreichen
Delphi-Quellcode:
das je nach dem was Merkmal für einen Wert beeinhaltet, ein BubbleSort realisiert wird!
if ((Merkmal = ID) and (Temp1.ID < Temp2.ID))
or ((Merkmal = N) and (Temp1.Name < Temp2.Name)) or ((Merkmal = T) and (Temp1.Typ < Temp2.Typ)) or ((Merkmal = K) and (Temp1.Kategorie < Temp2.Kategorie))then Das wirkliche Tauschen der position in der Datei wird erst in dem then Teil ausgeführt, da es ja bei allen(also egal welchen Wert Merkmal hatt) das selbe ist! Nur die Abfragen nach den Abfragen welchen Wert Merkmal beeinhaltet ist für die unterschiedlichen Fälle anders! Aber der Code oben, funktioniert bei mir nicht und ich verstehe nicht warum(habe das so schon öffters gemacht)?? Welche sagen es liegt am Delphi Compiler andere sagen es muss so laufen. Tut es aber nicht, das Problem liegt ganz klar da, das als erstes geprüft wird ob Merkmal = N ist (ist es aber nicht) und dann testet er den ersten or Teil überhaupt nicht mehr.....TELL MI WHY (bin schon min. 10 mal mit dem debugger durch--> keine Idee!!) :wall: :wall: :wall: :wall: :wall: :wall: :wall: @computer-glossar.de ID := 1,2,3,4.... Name:= String[50] Typ:=(CD,DVD) Kategorie:= (Film,Musik,Software,SonstigeDaten) Da liegt aber auch nicht der Fehler, er müsste ja zumindest mal den Ausdruck auswerten tut er aber net! |
Re: IF Abfrage
Moin!
Wenn Du das machst:
Delphi-Quellcode:
Welche Meldungen bekommst Du?
If ((Merkmal = ID) and (Temp1.ID < Temp2.ID)) then
ShowMessage('1'); If ((Merkmal = N) and (Temp1.Name < Temp2.Name)) then ShowMessage('2'); If ((Merkmal = T) and (Temp1.Typ < Temp2.Typ)) then ShowMessage('3'); If ((Merkmal = K) and (Temp1.Kategorie < Temp2.Kategorie)) then ShowMessage('4'); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:52 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