AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Zahlen zwischen zwei Größen filtern

Ein Thema von JulianT · begonnen am 11. Mai 2015 · letzter Beitrag vom 8. Jun 2015
Antwort Antwort
Seite 1 von 3  1 23   
JulianT
(Gast)

n/a Beiträge
 
#1

Zahlen zwischen zwei Größen filtern

  Alt 11. Mai 2015, 08:49
Delphi-Version: XE4
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.
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#2

AW: Zahlen zwischen zwei Größen filtern

  Alt 11. Mai 2015, 08:56
Wie kann man das umsetzen, dass er sozusagen so etwas wie in Mathe umsetzt (Geht ja leider nicht in Delphi): Min<=Größe<=Max
If ((Groesse >= Min) and (Groesse <= Max)) then ...
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
ringli

Registriert seit: 7. Okt 2004
466 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Zahlen zwischen zwei Größen filtern

  Alt 11. Mai 2015, 08:59
Setz mal in den Projektoptionen unter Delphi-Compiler | Compilieren die Option Vollständige Boolsche Auswertung auf True.
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
567 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Zahlen zwischen zwei Größen filtern

  Alt 11. Mai 2015, 09:04
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.

Geändert von bcvs (11. Mai 2015 um 09:07 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.190 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Zahlen zwischen zwei Größen filtern

  Alt 11. Mai 2015, 09:06
Man kann auch InRange aus der unit math nehmen.

If InRange(groesse,min,max) then
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
bcvs

Registriert seit: 16. Jun 2011
567 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Zahlen zwischen zwei Größen filtern

  Alt 11. Mai 2015, 09:07
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.
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#7

AW: Zahlen zwischen zwei Größen filtern

  Alt 11. Mai 2015, 09:08
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 ...

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.
Miniaturansicht angehängter Grafiken
betweenminmax.jpg  

Geändert von Perlsau (11. Mai 2015 um 09:12 Uhr)
  Mit Zitat antworten Zitat
JulianT
(Gast)

n/a Beiträge
 
#8

AW: Zahlen zwischen zwei Größen filtern

  Alt 11. Mai 2015, 09:10
Funktioniert, allerdings im Context nur bedingt. Aber das ist nicht auf meine Frage bezogen :=)
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#9

AW: Zahlen zwischen zwei Größen filtern

  Alt 11. Mai 2015, 09:17
Wie war die Frage noch gleich?
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#10

AW: Zahlen zwischen zwei Größen filtern

  Alt 11. Mai 2015, 09:37
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?

Achso, fast vergessen: Welcher Kontext?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +2. Es ist jetzt 05:59 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf