Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Einfache Mengentypen (https://www.delphipraxis.net/163486-einfache-mengentypen.html)

Beck93 30. Sep 2011 09:44

Einfache Mengentypen
 
Hi,

ich stehe momentan vor dem Problem das ich einen Pool aus gewissen Zahlen habe und ich wissen muss ob eine Der Zahlen eingegeben wurde.

Zum besseren Verständnis:

Ich habe Die Zahlen 1004,1007,1010,1011,1201,1015
Wenn eine Dieser Zahlen eingegeben wird arbeitet die Anwendung damit weiter (Das Funktioniert schon mal:thumb: )

Wie kann ich jetzt nur Überprüfen ob eine Gültige Zahl eingegeben wurde.

Ich könnte es mit Vielen IFs machen aber das geht bestimmt noch Inteligenter8-)

Mit Einfachen Mengentypen hat es bei mir leider nicht funktioniert, da er set of Integer nicht akzeptiert und die Zahlen(1004...) über 255 hinaus gehen.

Danke schon mal für eure Hilfe:wink:

mquadrat 30. Sep 2011 09:46

AW: Einfache Mengentypen
 
Wie wär's mit einer Delphi-Referenz durchsuchenTIntList?

Beck93 30. Sep 2011 09:59

AW: Einfache Mengentypen
 
Danke für die schnelle Antwort:thumb:

Nur leider habe ich davon noch NIE gehört und die Hilfe in Delphi bringt mich auch nicht wirklich weiter:roll:

Könntest du mir vieleicht freundlicher weiße einen Tipp geben wie ich mit TIntList umgehe oder sie verwende?

Danke

Vieleicht noch eins zur Erklärung ich weiß nicht ob es wichtig ist aber naja:-D

Es sieht momentan so aus bei mir:
Delphi-Quellcode:
function TDruckerStatus.FehlerNummer():boolean;
Type TNummern = set of integer;
var
 GueltigeNummer: TNummern;
begin
Result:= False;
 GueltigeNummer:= [1004,1007,1008,1009,1010,1011,1013,1015,1201,1202];
  if Diagnosenummer in GueltigeNummer then begin
   Result:= True;
  end;
end;
Nur wie schon gesagt Set of integer geht nicht.

mirage228 30. Sep 2011 10:10

AW: Einfache Mengentypen
 
Also ich wüsste spontan zumindest einen Workaround damit es auch mit Mengentypen geht.
Nimm set of byte und dann speicher:
Delphi-Quellcode:
  GueltigeNummer := [4,7, 8,9,10,11,13,15,201,202];

und bei der Abfrage dann
Delphi-Quellcode:
  if (DiagnoseNummer - 1000) in GueltigeNummer then


Setzt natürlich voraus, dass alle deine gültigen Nummern zw. 1000 und 1255 sind.

Viele Grüße

Beck93 30. Sep 2011 10:17

AW: Einfache Mengentypen
 
Danke super Idee bin ich gar nicht drauf gekommen:thumb:

Das hilft auf jeden fall schon mal weiter zum Testen verfeinern kann ich ja immer noch wenn noch einer etwas schöneres weiß:-D

Danke

DeddyH 30. Sep 2011 10:23

AW: Einfache Mengentypen
 
Delphi-Quellcode:
case Zahl of
  1004,1007,1010,1011,1201,1015: ShowMessage('OK');
  else
    ShowMessage('Nee, so nicht');
end;

Beck93 30. Sep 2011 10:53

AW: Einfache Mengentypen
 
Vielen Dank für eure Antworten.

So funktioniert es jetzt sauber würde ich sagen:thumb:

Danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:15 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