Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Zahlen zwischen zwei Größen filtern (https://www.delphipraxis.net/185043-zahlen-zwischen-zwei-groessen-filtern.html)

JulianT 11. Mai 2015 07:49

Delphi-Version: XE4

Zahlen zwischen zwei Größen filtern
 
Hallo, mein Problem ist folgendes: Ich gebe einen Wert Größe ein. Sagen wir 145 (Angaben logischerweise in mm). Im StringGrid möchte ich nun nur Einträge anzeigen lassen, die zwischen der Min und der Max Zahl liegen. In dem Fall zwischen 160 und 200. Rein theoretisch sollte es natürlich in dem Fall nicht angezeigt werden, wird es aber.

Hier der Code der problematischen Zeile

Code:
for i:= 1 to 5 do
  if (größe>min) and (größe<max) then
Größe ist kleiner als min, aber auch kleiner als Max, deswegen läuft das Programm dann weiter mit dem Abarbeiten des Codes, richtig?

Wie kann man das umsetzen, dass er sozusagen so etwas wie in Mathe umsetzt (Geht ja leider nicht in Delphi): Min<=Größe<=Max

Danke für eure Antworten.

baumina 11. Mai 2015 07:56

AW: Zahlen zwischen zwei Größen filtern
 
Zitat:

Zitat von JulianT (Beitrag 1300957)
Wie kann man das umsetzen, dass er sozusagen so etwas wie in Mathe umsetzt (Geht ja leider nicht in Delphi): Min<=Größe<=Max

Delphi-Quellcode:
If ((Groesse >= Min) and (Groesse <= Max)) then ...

ringli 11. Mai 2015 07:59

AW: Zahlen zwischen zwei Größen filtern
 
Setz mal in den Projektoptionen unter Delphi-Compiler | Compilieren die Option Vollständige Boolsche Auswertung auf True.

bcvs 11. Mai 2015 08:04

AW: Zahlen zwischen zwei Größen filtern
 
Zitat:

Zitat von JulianT (Beitrag 1300957)
Wie kann man das umsetzen, dass er sozusagen so etwas wie in Mathe umsetzt (Geht ja leider nicht in Delphi): Min<=Größe<=Max

Dein Ansatz ist schon richtig (bis auf das >= und <=, falls so gefordert) und wenn deine Beispielzahlen stimmen (größe=145, min=160, max=200), wird der If-Teil nicht ausgeführt. Wenn doch, stimmt irgendwas mit der Zuweisung der Variablen nicht.

bernau 11. Mai 2015 08:06

AW: Zahlen zwischen zwei Größen filtern
 
Man kann auch
Delphi-Quellcode:
InRange
aus der unit math nehmen.

Delphi-Quellcode:
If InRange(groesse,min,max) then

bcvs 11. Mai 2015 08:07

AW: Zahlen zwischen zwei Größen filtern
 
Zitat:

Zitat von ringli (Beitrag 1300960)
Setz mal in den Projektoptionen unter Delphi-Compiler | Compilieren die Option Vollständige Boolsche Auswertung auf True.

Das bringt doch nichts. Wegen dem And wird dieser boolsche Ausdruck doch sowieso vollständig ausgewertet.

Perlsau 11. Mai 2015 08:08

AW: Zahlen zwischen zwei Größen filtern
 
Liste der Anhänge anzeigen (Anzahl: 1)
Versteh ich nicht, warum das nicht gehen sollte ... vielleicht wegen der deutschen Sonderzeichen wie ö und ß ... Bei mir funktioniert der folgende Code einwandfrei, wie die angehänge Grafik belegt:
Delphi-Quellcode:
procedure TFrame_Test.Button1Click(Sender: TObject);
Const
  Zahlen : Array[1..5] Of Integer = (12,25,66,80,92);
  Min = 25;
  Max = 80;
Var
  i : Integer;
begin
  Lbl_Index.Caption := '';
  For i := 1 To 5 Do
  If (Zahlen[i] >= Min) And (Zahlen[i] <= Max) Then
     Lbl_Index.Caption := Lbl_Index.Caption + IntToStr(Zahlen[i]) + ' ';
end;
Vollständige Boolsche Auswertung steht bei mir auf False ...

Zitat:

Zitat von JulianT (Beitrag 1300957)
Größe ist kleiner als min, aber auch kleiner als Max, deswegen läuft das Programm dann weiter mit dem Abarbeiten des Codes, richtig?

Wenn Größe kleiner als Min ist, dann wird Größe aussortiert und nicht angezeigt. Angezeigt werden nur die Werte, die zwischen Min und Max liegen, so wie du das in deinem Eingangsposting dargestellt hast. Das = nach dem > bzw. nach dem < bedeutet, daß der Wert von Min bzw. Max mit einbezogen wird, also inklusive, ohne = wäre es exklusive.

JulianT 11. Mai 2015 08:10

AW: Zahlen zwischen zwei Größen filtern
 
Funktioniert, allerdings im Context nur bedingt. Aber das ist nicht auf meine Frage bezogen :=)

baumina 11. Mai 2015 08:17

AW: Zahlen zwischen zwei Größen filtern
 
Wie war die Frage noch gleich? :gruebel:

Perlsau 11. Mai 2015 08:37

AW: Zahlen zwischen zwei Größen filtern
 
Die Frage lautete:

Wie kann man das umsetzen, dass er sozusagen so etwas wie in Mathe umsetzt (Geht ja leider nicht in Delphi): Min<=Größe<=Max

Und genau das habe ich gemacht.

@JulianT

Was daran nicht auf deine Frage bezogen sein soll, erschließt sich mir nicht. Wenn du etwas anderes gemeint als geschrieben hast, könntest du noch einmal deine Frage oben betrachten und vielleicht neu stellen. Was also willst du als Ergebnis haben: Die Zahlen, die zwischen Min und Max liegen, oder die Zahlen, die außerhalb liegen, inklusive oder exklusive. Oder ging's vielleicht doch um's richtige Kaffeekochen und ich hab da was falsch verstanden? :lol:

Achso, fast vergessen: Welcher Kontext?


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:47 Uhr.
Seite 1 von 3  1 23      

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