Autor
|
Thema: Sortierer Problem (AusgangBlockierliste) (1621 mal gelesen)
|
Planters Punch Mitglied
Beiträge: 9 Registriert: 04.07.2005
|
erstellt am: 04. Jul. 2005 11:38 <-- editieren / zitieren --> Unities abgeben:
Hallo Ich kämpfe im Moment mit einem Sortierer der nicht das tut was er soll. Vielleicht weiss jemand von euch Rat. Grundidee: Der Sortiererausgang ist standardmäßig gesperrt und sammelt Fördergut. In regelmäßigen Abständen wird der Ausgang geöffnet und die Elemente sollen in Sortierreihenfolge an den Ausgang kommen. Dort wird dann in einer Ausgangsmethode entschieden, ob das jeweils erste Element raus darf. Wenn nicht, wird der Ausgang des Sortierers wieder gesperrt bis zur nächsten geplanten Öffnung. Das Problem: Das Fördergut tritt nicht in der sortierten Reihenfolge an den Ausgang. Als Grund dafür habe ich die Ausgangsblockierliste ausgemacht. Wenn ich kurz vor der Öffnung in den Sortierer schaue, ist die Bestandsliste leer und die Ausgangsblockierliste voll. Die Freischaltmethode sind dann folgendermaßen aus:
Code:
is do .Modelle.Netzwerk.Auftragsfreigabe.sortieren; .Modelle.Netzwerk.Auftragsfreigabe.AusgangGesperrt := false; end;
Wenn ich einen Breakpoint in der Ausgangsmethode setze, kann ich sehen, dass die Bestandsliste jetzt voll und richtig sortiert ist und die Ausgangsblockierliste ist leer. Dennoch wird nicht das erste Element der Bestandsliste abgearbeitet, sondern eins das wohl ganz zuletzt in den Sortierer gekommen ist. Es sieht fast so aus, als würde die Bestandsliste von unten statt von oben abgearbeitet werden. Fast, weil dies nicht ganz der Fall ist.. Es scheint eher eine Reihenfolge zu sein, die sich aus der Rückeinfügung aus der Ausgangsblockierliste ergibt. Leider ist dieses Verhalten für mich völlig sinnlos.. ich habe bereits die wait(0.001) Lösung aus dem anderen Thread probiert, leider ohne Erfolg. Hat jemand eine Idee, wie ich dem Teil, erklären kann, dass ich tatsächlich die sortierte Reihenfolge der BEstandsliste und nicht irgendeine interne Reihenfolge haben möchte? Bin für jeden Hinweis dankbar! Planters Punch Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Opa Mitglied Selbständiger Simulationsexperte
Beiträge: 62 Registriert: 16.06.2005 eM-Plant 7.6 / 8.2 Development License
|
erstellt am: 04. Jul. 2005 12:21 <-- editieren / zitieren --> Unities abgeben: Nur für Planters Punch
Hallo Planters Punch, kannst Du das Modell bzw. die wesentlichen Teile mal in's Forum stellen. Mir ist nicht klar, wieso die Ausgangsblockierliste gefüllt ist bei geschlossenem Ausgang. Liegt das daran, dass beim vorherigen Öffnen die BEs nicht umgelagert wurden? Opa Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Planters Punch Mitglied
Beiträge: 9 Registriert: 04.07.2005
|
erstellt am: 04. Jul. 2005 12:36 <-- editieren / zitieren --> Unities abgeben:
Was würdest du denn gerne genau wissen? Auf die Quelle folgt direkt der von Anfang an ausgangsgesperrte Sortierer. Das Fördergut rauscht also rein und wird direkt in die Ausgangsblockierliste geschrieben. Scheint laut Hilfe das normale Verhalten zu sein. Kann ich dieses Verhalten umgehen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Opa Mitglied Selbständiger Simulationsexperte
Beiträge: 62 Registriert: 16.06.2005 eM-Plant 7.6 / 8.2 Development License
|
erstellt am: 04. Jul. 2005 12:51 <-- editieren / zitieren --> Unities abgeben: Nur für Planters Punch
|
Planters Punch Mitglied
Beiträge: 9 Registriert: 04.07.2005
|
erstellt am: 04. Jul. 2005 13:17 <-- editieren / zitieren --> Unities abgeben:
Ja.. das Bild entspricht auch meiner "Ansicht" aber wie ich bereits geschrieben habe: "Wenn ich einen Breakpoint in der Ausgangsmethode setze, kann ich sehen, dass die Bestandsliste jetzt voll und richtig sortiert ist und die Ausgangsblockierliste ist leer. Dennoch wird nicht das erste Element der Bestandsliste abgearbeitet, sondern eins das wohl ganz zuletzt in den Sortierer gekommen ist." Siehe dazu mein Screenshot... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 04. Jul. 2005 13:59 <-- editieren / zitieren -->
Hi, fragen wir mal so: - nach was wird sortiert ? - Sortierattribut ? - Sortierkriterium ? - wie wird sortiert ? - über Methode - aufwärts/abwärts ? - wie sieht Deine Ausgangsmethode aus ? wie Opa schon erwähnt hat, wenn Du nicht gerade mit der Studentenlizenz arbeitest, dann schicke mal diesen Ausschnitt des Modells. Ein eM-Plant-Modell sagt mehr als tausend Worte :-); Gruss
------------------ DER SIMULATOR |
Opa Mitglied Selbständiger Simulationsexperte
Beiträge: 62 Registriert: 16.06.2005 eM-Plant 7.6 / 8.2 Development License
|
erstellt am: 04. Jul. 2005 14:12 <-- editieren / zitieren --> Unities abgeben: Nur für Planters Punch
|
Planters Punch Mitglied
Beiträge: 9 Registriert: 04.07.2005
|
erstellt am: 04. Jul. 2005 14:25 <-- editieren / zitieren --> Unities abgeben:
Hallo, leider verwende ich die Studentenlizenz.. Der Sortierer arbeitet absteigend, bei Eintritt über BE-Eigenschaft "Freies Attribut". Den Wert des Attributes "Frist" erhält das Fördergut in der Quelle. Dieses hat ein zufälligen Wert mit Obergrenze. Mehrer Fördergüter können die gleich Frist haben. Die Ausgangsmethode sieht folgendermaßen aus (lang): Code:
is Maschine1Kapazität : integer; Maschine1Belastung : real; Maschine1Gesperrt : boolean; Maschine2Kapazität : integer; Maschine2Belastung : real; Maschine2Gesperrt : boolean; Maschine3Kapazität : integer; Maschine3Belastung : real; Maschine3Gesperrt : boolean; Maschine4Kapazität : integer; Maschine4Belastung : real; Maschine4Gesperrt : boolean; do if .Modelle.Netzwerk.Auftragsfreigabe.AusgangGesperrt = true then return; end; Maschine1Kapazität := .Modelle.Netzwerk.Maschine1.Kapazität; Maschine1Belastung := .Modelle.Netzwerk.Maschine1.Belastung; Maschine2Kapazität := .Modelle.Netzwerk.Maschine2.Kapazität; Maschine2Belastung := .Modelle.Netzwerk.Maschine2.Belastung; Maschine3Kapazität := .Modelle.Netzwerk.Maschine3.Kapazität; Maschine3Belastung := .Modelle.Netzwerk.Maschine3.Belastung; Maschine4Kapazität := .Modelle.Netzwerk.Maschine4.Kapazität; Maschine4Belastung := .Modelle.Netzwerk.Maschine4.Belastung; if @.Frist > .Modelle.Netzwerk.Planperiode then .Modelle.Netzwerk.Auftragsfreigabe.AusgangGesperrt := true; return; end; if Maschine1Kapazität < Maschine1Belastung then Maschine1Gesperrt := true; end; if Maschine2Kapazität < Maschine2Belastung then Maschine2Gesperrt := true; end; if Maschine3Kapazität < Maschine3Belastung then Maschine3Gesperrt := true; end; if Maschine4Kapazität < Maschine4Belastung then Maschine4Gesperrt := true; end; -- messageBox(to_str(@.AuftragNr) , 3, 14); if @.Maschine1 = 1 then Maschine1Belastung := Maschine1Belastung + @.BedarfGewichtet1; if Maschine1Gesperrt and (Maschine1Kapazität < Maschine1Belastung) then .Modelle.Netzwerk.Auftragsfreigabe.AusgangGesperrt := true; return end; end; if @.Maschine1 = 2 then Maschine2Belastung := Maschine2Belastung + @.BedarfGewichtet1; if Maschine2Gesperrt and (Maschine2Kapazität < Maschine2Belastung) then .Modelle.Netzwerk.Auftragsfreigabe.AusgangGesperrt := true; return end; end; if @.Maschine1 = 3 then Maschine3Belastung := Maschine3Belastung + @.BedarfGewichtet1; if Maschine3Gesperrt and (Maschine3Kapazität < Maschine3Belastung) then .Modelle.Netzwerk.Auftragsfreigabe.AusgangGesperrt := true; return end; end; if @.Maschine1 = 4 then Maschine4Belastung := Maschine4Belastung + @.BedarfGewichtet1; if Maschine4Gesperrt and (Maschine4Kapazität < Maschine4Belastung) then .Modelle.Netzwerk.Auftragsfreigabe.AusgangGesperrt := true; return end; end; if @.Maschine2 = 1 then Maschine1Belastung := Maschine1Belastung + @.BedarfGewichtet2; if Maschine1Gesperrt and (Maschine1Kapazität < Maschine1Belastung) then .Modelle.Netzwerk.Auftragsfreigabe.AusgangGesperrt := true; return end; end; if @.Maschine2 = 2 then Maschine2Belastung := Maschine2Belastung + @.BedarfGewichtet2; if Maschine2Gesperrt and (Maschine2Kapazität < Maschine2Belastung) then .Modelle.Netzwerk.Auftragsfreigabe.AusgangGesperrt := true; return end; end; if @.Maschine2 = 3 then Maschine3Belastung := Maschine3Belastung + @.BedarfGewichtet2; if Maschine3Gesperrt and (Maschine3Kapazität < Maschine3Belastung) then .Modelle.Netzwerk.Auftragsfreigabe.AusgangGesperrt := true; return end; end; if @.Maschine2 = 4 then Maschine4Belastung := Maschine4Belastung + @.BedarfGewichtet2; if Maschine4Gesperrt and (Maschine4Kapazität < Maschine4Belastung) then .Modelle.Netzwerk.Auftragsfreigabe.AusgangGesperrt := true; return end; end; if @.Maschine3 = 1 then Maschine1Belastung := Maschine1Belastung + @.BedarfGewichtet3; if Maschine1Gesperrt and (Maschine1Kapazität < Maschine1Belastung) then .Modelle.Netzwerk.Auftragsfreigabe.AusgangGesperrt := true; return end; end; if @.Maschine3 = 2 then Maschine2Belastung := Maschine2Belastung + @.BedarfGewichtet3; if Maschine2Gesperrt and (Maschine2Kapazität < Maschine2Belastung) then .Modelle.Netzwerk.Auftragsfreigabe.AusgangGesperrt := true; return end; end; if @.Maschine3 = 3 then Maschine3Belastung := Maschine3Belastung + @.BedarfGewichtet3; if Maschine3Gesperrt and (Maschine3Kapazität < Maschine3Belastung) then .Modelle.Netzwerk.Auftragsfreigabe.AusgangGesperrt := true; return end; end; if @.Maschine3 = 4 then Maschine4Belastung := Maschine4Belastung + @.BedarfGewichtet3; if Maschine4Gesperrt and (Maschine4Kapazität < Maschine4Belastung) then .Modelle.Netzwerk.Auftragsfreigabe.AusgangGesperrt := true; return end; end; if @.Maschine4 = 1 then Maschine1Belastung := Maschine1Belastung + @.BedarfGewichtet4; if Maschine1Gesperrt and (Maschine1Kapazität < Maschine1Belastung) then .Modelle.Netzwerk.Auftragsfreigabe.AusgangGesperrt := true; return end; end; if @.Maschine4 = 2 then Maschine2Belastung := Maschine2Belastung + @.BedarfGewichtet4; if Maschine2Gesperrt and (Maschine2Kapazität < Maschine2Belastung) then .Modelle.Netzwerk.Auftragsfreigabe.AusgangGesperrt := true; return end; end; if @.Maschine4 = 3 then Maschine3Belastung := Maschine3Belastung + @.BedarfGewichtet4; if Maschine3Gesperrt and (Maschine3Kapazität < Maschine3Belastung) then .Modelle.Netzwerk.Auftragsfreigabe.AusgangGesperrt := true; return end; end; if @.Maschine4 = 4 then Maschine4Belastung := Maschine4Belastung + @.BedarfGewichtet4; if Maschine4Gesperrt and (Maschine4Kapazität < Maschine4Belastung) then .Modelle.Netzwerk.Auftragsfreigabe.AusgangGesperrt := true; return end; end; -- Maschinen-Konten addieren .Modelle.Netzwerk.Maschine1.Belastung := Maschine1Belastung; .Modelle.Netzwerk.Maschine2.Belastung := Maschine2Belastung; .Modelle.Netzwerk.Maschine3.Belastung := Maschine3Belastung; .Modelle.Netzwerk.Maschine4.Belastung := Maschine4Belastung; @.umlagern(Verteiler); end;
Ein Bild von dem Modell habe ich mal beigefügt. Vielen Dank schon mal, dass ihr euch das überhaupt mal anschaut. [Diese Nachricht wurde von Planters Punch am 04. Jul. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Opa Mitglied Selbständiger Simulationsexperte
Beiträge: 62 Registriert: 16.06.2005 eM-Plant 7.6 / 8.2 Development License
|
erstellt am: 04. Jul. 2005 14:41 <-- editieren / zitieren --> Unities abgeben: Nur für Planters Punch
Huu, da ist mir der SIMULATOR dazwischengekommen . Wenn es gleiche Sortierwerte gibt, dann wird das BE mit einer der grössten Fristen, das als letztes eingetreten ist, zuerst austreten (So ist das jedenfalls bei mir). Du müsstest noch innerhalb der gleichen Fristen eine Reihenfolge definieren, so dass die BEs mit der kleinen ID zuerst kommen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Planters Punch Mitglied
Beiträge: 9 Registriert: 04.07.2005
|
erstellt am: 04. Jul. 2005 14:47 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Opa: Wenn es gleiche Sortierwerte gibt, dann wird das BE mit einer der grössten Fristen, das als letztes eingetreten ist, zuerst austreten (So ist das jedenfalls bei mir).Du müsstest noch innerhalb der gleichen Fristen eine Reihenfolge definieren, so dass die BEs mit der kleinen ID zuerst kommen.
Hm.. eigentlich will ich aber, dass das Fördergut mit der geringsten Frist als erstes austritt, egal wann es reingekommen ist. (Deshalb soll er ja sortieren...) Die sortierte Bestandstabelle hat auch die richtige Reihenfolge - nur kommt das Fördergut nicht in dieser Reihenfolge raus :-( Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 04. Jul. 2005 14:54 <-- editieren / zitieren -->
Hi, wenn der Ausgang einmal gesperrt ist, dann wird die Ausgangsmethode nicht mehr aufgerufen! Du solltest nicht via Ausgangsmethode den eigenen Ausgang steuern. Versuch den Ausgang ueber die Eingangsmethode zu steuern Gruss ------------------ DER SIMULATOR
[Diese Nachricht wurde von Simulator am 04. Jul. 2005 editiert.] |
Planters Punch Mitglied
Beiträge: 9 Registriert: 04.07.2005
|
erstellt am: 04. Jul. 2005 15:05 <-- editieren / zitieren --> Unities abgeben:
Ja.. eigentlich kann ich mir dann nur die erste if-Abfrage in der Ausgangsmethode schenken. Das Prinzip ist folgendes: Eine externe Methode, die über einen Generator aufgerufen wird, schaltet den Ausgang regelmäßig frei. Die Ausgangsmethode schaut sich dann das austretende Element an und lässt es heraus.. oder macht den Ausgang wieder dicht. Das funktioniert ja auch.. nur die Reihenfolge mit der die Elemente an die Ausgangsmethode gefüttert werden ergibt für mich keinen Sinn. Vielleicht habt ihr ja einen grundsätzlich anderen Vorschlag? Ich hab an ein Lager gedacht, das ständig befüllt wird und regelmäßig schaut eine Methode drin nach und holt die nächsten paar dringenden Elemente raus.. vielleicht würde das besser funktionieren.. Gruss Planters Punch Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Opa Mitglied Selbständiger Simulationsexperte
Beiträge: 62 Registriert: 16.06.2005 eM-Plant 7.6 / 8.2 Development License
|
erstellt am: 04. Jul. 2005 15:12 <-- editieren / zitieren --> Unities abgeben: Nur für Planters Punch
Zitat: Original erstellt von Planters Punch: Hm.. eigentlich will ich aber, dass das Fördergut mit der geringsten Frist als erstes austritt, egal wann es reingekommen ist. (Deshalb soll er ja sortieren...) Die sortierte Bestandstabelle hat auch die richtige Reihenfolge - nur kommt das Fördergut nicht in dieser Reihenfolge raus :-(
Wenn Du absteigend sortierst, dann steht ja das mit der grössten Frist am Anfang! Es ist übrigens so, dass die Inhaltstabelle von unten nach oben abgearbeitet wird, d.h. das letzte BE in der Tabelle wird zuerst entnommen. Wenn Du die kleinste Frist zuerst haben willst, musst Du Aufsteigend sortieren, die kleinste Frist steht dann unten! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 04. Jul. 2005 15:37 <-- editieren / zitieren -->
Hi, mach doch mal folgendes: Erhöhe mal die Kapazität des Sortierernachfolgers (Rückstau!) Sortieren "bei Eintritt" einstellen im Sortierer Schliesse Sortierereingang und sortier mal via Deiner Generatormethode bevor Du den Ausgang wieder öffnest. Öffne dann den Eingang zeitverzögert (z.B. wait(1)) Das ganze bitte im STEP-Modus beobachten Gruss
------------------ DER SIMULATOR |
Planters Punch Mitglied
Beiträge: 9 Registriert: 04.07.2005
|
erstellt am: 04. Jul. 2005 16:44 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Opa: Wenn Du absteigend sortierst, dann steht ja das mit der grössten Frist am Anfang! Es ist übrigens so, dass die Inhaltstabelle von unten nach oben abgearbeitet wird, d.h. das letzte BE in der Tabelle wird zuerst entnommen. Wenn Du die kleinste Frist zuerst haben willst, musst Du Aufsteigend sortieren, die kleinste Frist steht dann unten!
Danke für den Hinweis..! @Simulator Die Generator-Methode sieht nun so aus:
Code:
is do .Modelle.Netzwerk.Auftragsfreigabe.EingangGesperrt := true; wait(1); .Modelle.Netzwerk.Auftragsfreigabe.sortieren; wait(1); .Modelle.Netzwerk.Auftragsfreigabe.AusgangGesperrt := false; wait(1); .Modelle.Netzwerk.Auftragsfreigabe.EingangGesperrt := false; end;
Leider ändert das auch nichts... Fördergut:15 ist immer das erste das durch die Ausgangsmethode bearbeitet wird. Es ist das letzte, das reinkommt, bevor der Eingang auch gesperrt wird. Zur Verdeutlichung noch mal ein Screenshot, der die Situation kurz vor dem Öffnen des Ausgangs zeigt...
[Diese Nachricht wurde von Planters Punch am 04. Jul. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 04. Jul. 2005 17:08 <-- editieren / zitieren -->
Hi, wie sieht denn eigentlich die Frist-Attribut aus (Format: real,integer oder string ?) hast Du dir mal die die einzelnen Be´s mit Fristen ausgeben lassen ? als Vergleich wie sollte denn die korrekt-sortierte bzw. Umlagerungsreihenfolge aussehen. Schicke mal eine Liste mit den Fristen & Planperiode dann kann ich es mal ausprobieren Du hast da noch diese Vergleiche mit .....if @.Frist > .Modelle.Netzwerk.Planperiode then .Modelle.Netzwerk.Auftragsfreigabe.AusgangGesperrt := true; return; end;.... usw die den Austritt verhindern können. Kannst Du mal das ganze ohne diese Abfragen/Sperrungen testen. Gruss ------------------ DER SIMULATOR
[Diese Nachricht wurde von Simulator am 04. Jul. 2005 editiert.] |
Planters Punch Mitglied
Beiträge: 9 Registriert: 04.07.2005
|
erstellt am: 04. Jul. 2005 17:48 <-- editieren / zitieren --> Unities abgeben:
So siehts aus beim ersten Aufruf der Ausgangsmethode: 01 .BEs.Fördergut:13 Frist:10 02 .BEs.Fördergut:2 03 .BEs.Fördergut:6 04 .BEs.Fördergut:9 05 .BEs.Fördergut:4 06 .BEs.Fördergut:1 07 .BEs.Fördergut:3 08 .BEs.Fördergut:8 09 .BEs.Fördergut:10 10 .BEs.Fördergut:14 11 .BEs.Fördergut:15 12 .BEs.Fördergut:11 13 .BEs.Fördergut:5 14 .BEs.Fördergut:12 Frist:1 15 .BEs.Fördergut:7 Frist:1 Frist ist übrigens Integer und wir folgendermaßen erstellt: @.Frist := z_gleich(1,1,MAXFRIST); mit MAXFRIST=11 Fördergut:7 sollte als erstes rausgehen, dann 12 usw.. Ohne die Ausgangsmethode gehen die einfach in umgekehrter Reihenfolge wie sie rein sind wieder raus.. also 15, 14, 13, 12 etc... So als ob da gar nix sortiert wäre... *seufz* [Diese Nachricht wurde von Planters Punch am 04. Jul. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Opa Mitglied Selbständiger Simulationsexperte
Beiträge: 62 Registriert: 16.06.2005 eM-Plant 7.6 / 8.2 Development License
|
erstellt am: 04. Jul. 2005 17:56 <-- editieren / zitieren --> Unities abgeben: Nur für Planters Punch
Aber das ist doch klar! 15,14... haben doch alle Frist 0, bzw. blank, falls das ein string ist. Und blank oder 0 ist halt immer das kleinste. Innerhalb der gleichen Fristen sortiert er dann nicht, d.h. er nimmt halt den Letzten (15), der reingegangen ist, als Ersten. (Das sortieren in eM-Plant ist so eine Sache ). Wenn man das verhindern will, muss man das Sortierkriterium noch über die BE.ID oder was anderes gewichten. Und das Modell in der Anlage hilft vielleicht auch! Hoffe ich ... [Diese Nachricht wurde von Opa am 04. Jul. 2005 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Opa Mitglied Selbständiger Simulationsexperte
Beiträge: 62 Registriert: 16.06.2005 eM-Plant 7.6 / 8.2 Development License
|
erstellt am: 04. Jul. 2005 20:24 <-- editieren / zitieren --> Unities abgeben: Nur für Planters Punch
|
Planters Punch Mitglied
Beiträge: 9 Registriert: 04.07.2005
|
erstellt am: 04. Jul. 2005 21:21 <-- editieren / zitieren --> Unities abgeben:
Entschuldigung, wenn das missverständlich war... die Fördergüter bei denen keine Frist dahinter stand, hatten Fristen zwischen 1 und 10.. einen Wert haben die alle da (integer).. ich war nur in Eile und wollte die nicht alle dahinschreiben. Und der Punkt ist eben, dass das erste Element, das rauskommt weder den höchsten noch den niedrigsten hat... ´Bin eben erst wieder nach Hause gekommen, werde mir als nach dem Essen mal dein Model anschauen, vielen Dank! Gruss Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |