Autor
|
Thema: object in schlefie verändern (891 mal gelesen)
|
thato Mitglied
Beiträge: 66 Registriert: 20.04.2007
|
erstellt am: 24. Mai. 2007 10:52 <-- editieren / zitieren --> Unities abgeben:
ich würde gern mehrer fahrzeuge in einer schleife auf dem entsprechenden FS (1 bis 4) erzeugen. allerdings kann ich für FS keine variable angeben, geht es dennoch? fahrstuhl:=.BEs.Fahrzeug.erzeugen(FS1,2); danke für die hilfe.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Homer Simpson Mitglied
Beiträge: 345 Registriert: 14.09.2005
|
erstellt am: 24. Mai. 2007 14:43 <-- editieren / zitieren --> Unities abgeben: Nur für thato
|
thato Mitglied
Beiträge: 66 Registriert: 20.04.2007
|
erstellt am: 24. Mai. 2007 14:50 <-- editieren / zitieren --> Unities abgeben:
|
thato Mitglied
Beiträge: 66 Registriert: 20.04.2007
|
erstellt am: 24. Mai. 2007 14:51 <-- editieren / zitieren --> Unities abgeben:
|
Homer Simpson Mitglied
Beiträge: 345 Registriert: 14.09.2005
|
erstellt am: 24. Mai. 2007 20:55 <-- editieren / zitieren --> Unities abgeben: Nur für thato
Ich weiß immer noch nicht so genau, was du vorhast. Löst vielleicht der folgende Programmcode dein Problem? Code: for i := 1 to 4 loop fahrzeug := .BEs.Fahrzeug.erzeugen(str_to_obj(to_str("FS",i))); next;
Der Code erzeugt jeweils ein Fahrzeug auf FS1, FS2, FS3 und FS4.Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
thato Mitglied
Beiträge: 66 Registriert: 20.04.2007
|
erstellt am: 29. Mai. 2007 14:27 <-- editieren / zitieren --> Unities abgeben:
|
thato Mitglied
Beiträge: 66 Registriert: 20.04.2007
|
erstellt am: 07. Jun. 2007 14:00 <-- editieren / zitieren --> Unities abgeben:
anscheinend habe ich den befehl doch noch nicht richtig verstanden. for i:= 1 to AnzahlFahrstuhl loop @.umlagern(.BEs.Fahrstuhl:i); if .BEs.Fahrstuhl:i.voll = false then i=i+1 end; next; wo ist denn hier mein fehler? bzw wie kann ich hier das str_to_obj richtig einsetzen? [Diese Nachricht wurde von thato am 07. Jun. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Homer Simpson Mitglied
Beiträge: 345 Registriert: 14.09.2005
|
erstellt am: 07. Jun. 2007 16:34 <-- editieren / zitieren --> Unities abgeben: Nur für thato
Leider weiß ich mal wieder nicht, was du vorhast. Du wirfst uns hier einen Brocken Code vor die Füße ohne zu sagen, was er bewirken soll... Ich habe aber einige Vermutungen: Erstens mal kommt es mir merkwürdig vor, dass du in einer Schleife dasselbe BE mehrfach umlagerst. "@" verändert sich ja nicht, sondern ist in der gesamten Methode genau das eine die Steuerung auslösende BE. Außerdem verstehe ich nicht, warum du erst nach dem Umlagern prüfst, ob der Fahrstuhl voll ist. Würde es so nicht mehr Sinn machen: Code:
for i := 1 to AnzahlFahrstuhl loop if not .BEs.Fahrstuhl:i.voll then @.umlagern(.BEs.Fahrstuhl:i); exitloop; end; next;
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
thato Mitglied
Beiträge: 66 Registriert: 20.04.2007
|
erstellt am: 07. Jun. 2007 22:06 <-- editieren / zitieren --> Unities abgeben:
Du hast natürlich recht.Sorry. Also der Fahrstuhl hat eine gewisse Kapazität. Wenn er voll ist, sollen die restlichen BEs auf den Fahrstuhl 2,3,... umgelagert werden. das mit dem @ war mir so nicht bewusst. es muss natürlich an der Stelle stehen, wo du es hingeschrieben hast. Aber ich bekome trotzdem einen "syntaxfehler" Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 08. Jun. 2007 09:47 <-- editieren / zitieren -->
die Ursache der Meldung hängt vermutlich mit dem .bes.fahrstuhl:i zusammen. mach es deshalb so: obj : object; obj:=str_to_obj(sprint(".bes.fahrstuhl:",i)); . . if obj.voll... ------------------ Der Simulator
|
thato Mitglied
Beiträge: 66 Registriert: 20.04.2007
|
erstellt am: 08. Jun. 2007 18:41 <-- editieren / zitieren --> Unities abgeben:
|
Ex-Mitglied
|
erstellt am: 08. Jun. 2007 20:56 <-- editieren / zitieren -->
Die Methode sprint, für string print, konvertiert einen beliebigen Datentyp in einen string. Die Methode to_str gibt das gleiche Resultat zurück. s. eMPlant-Hilfe !
------------------ Der Simulator |
thato Mitglied
Beiträge: 66 Registriert: 20.04.2007
|
erstellt am: 21. Jun. 2007 11:59 <-- editieren / zitieren --> Unities abgeben:
der Befehl sprint war mir unbekannt und habe ich auch nicht in der Hilfe gefunden. to_str war mir bekannt und habe ich auch mittlerweile fleißig benutzt. Vielen Dank nochmal! Das Programm ist noch nicht fertig und ich habe bestimmt noch viele Fragen Je mehr man weiß, desto mehr Spaß macht es Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 21. Jun. 2007 21:58 <-- editieren / zitieren -->
Zitat:
der Befehl sprint war mir unbekannt und habe ich auch nicht in der Hilfe gefunden
na na na den Reiter "Index" oder "Suchen" selektieren und dann "sprint" eingeben ! ------------------ Der Simulator |
thato Mitglied
Beiträge: 66 Registriert: 20.04.2007
|
erstellt am: 23. Jun. 2007 09:20 <-- editieren / zitieren --> Unities abgeben:
|
Ex-Mitglied
|
erstellt am: 23. Jun. 2007 10:50 <-- editieren / zitieren -->
habs unter 7.0.11 (s. Anhang) 7.5 und Psi 8.x getestet Was kam denn bei der Suchbegriff-Eingabe heraus ? (s. sp02.jpg) Scheint mir, Du arbeitest nicht mit der aktuellsten 7.0.x -Version (s. Datum ) ------------------ Der Simulator |