Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  TM - Plant Simulation
  Variable auf bestimmte Art ansprechen

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Variable auf bestimmte Art ansprechen (1402 mal gelesen)
Erwin_S
Mitglied



Sehen Sie sich das Profil von Erwin_S an!   Senden Sie eine Private Message an Erwin_S  Schreiben Sie einen Gästebucheintrag für Erwin_S

Beiträge: 37
Registriert: 13.08.2006

erstellt am: 15. Aug. 2006 17:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi!

ich habe jetzt ein Problem, mit dem ich mich schon länger herumschlage und mich immer wieder frage, ob es möglich ist und wenn ja, wie:

Ich habe eine Anzahl von BEs(Fahrzeuge) und eine dazugehörige Anzahl von Variablen. In einer Methode soll der Wert einer bestimmten Variablen verändert werden, je nachdem, welches BE die Methode aufruft. Wie kann ich das machen, OHNE eine If-Schleife für jedes BE?
Geht das überhaupt irgendwie?

Ich danke für jede gute Idee!

Gruß Euer Erwin S.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 15. Aug. 2006 17:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

schau Dir mal diesen Betrag an.
http://ww3.cad.de/foren/ubb/Forum262/HTML/000448.shtml#000001

Gruss

------------------
Der Simulator

Erwin_S
Mitglied



Sehen Sie sich das Profil von Erwin_S an!   Senden Sie eine Private Message an Erwin_S  Schreiben Sie einen Gästebucheintrag für Erwin_S

Beiträge: 37
Registriert: 13.08.2006

erstellt am: 16. Aug. 2006 09:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi Simulator,

meinst du den Weg über die Tabelle, die du über eine For-Schleife abarbeitest? Das Problem dabei ist, dass man Tabelleninhalte nicht innerhalb einer waituntil-Anweisung überwachen kann. Deshalb möchte ich die Werte gern in einer Variablen gespeichert haben....

Gruß Erwin

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

math4fun
Mitglied



Sehen Sie sich das Profil von math4fun an!   Senden Sie eine Private Message an math4fun  Schreiben Sie einen Gästebucheintrag für math4fun

Beiträge: 167
Registriert: 12.12.2005

erstellt am: 16. Aug. 2006 10:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Erwin_S 10 Unities + Antwort hilfreich

Klasse Frage! Nehmen wir an, dass die BE-Namen und Variablennamen gleich sind: z.B. "Entity1" und "Entity2". Anderenfalls muss man mit String etwas herumwerkeln.

Dann funktioniert folgende Steuerung:
is
  obj bject;
do
  obj := @.name;
-- hier wird der String "Entity1" in das Variablenobjekt umgewandelt.
  obj.Val := obj.Val + 1; -- Zugriff auf den Wert einer Variable.

end;

------------------
PM

www.math4fun.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 16. Aug. 2006 12:22    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

Wenn Du  einen Zeilen/Spalten-Index benutzt, kannst Du das Tabellen feld z.B. ueber tabelle["be.name",..] direkt aufrufen. Du brauchst dazu keine Schleife.

Aber Du kannst auch in den Be´s Attribute definieren, die ueber be.attributnamen aufgerufen werden. Diese sind auch ueberwachbar


Gruss

------------------
Der Simulator

Erwin_S
Mitglied



Sehen Sie sich das Profil von Erwin_S an!   Senden Sie eine Private Message an Erwin_S  Schreiben Sie einen Gästebucheintrag für Erwin_S

Beiträge: 37
Registriert: 13.08.2006

erstellt am: 16. Aug. 2006 13:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi PM,

danke für die gute Antwort. Daran hatte ich auch schon gedacht, es aber nicht hinbekommen. Es klappt aber immer noch nicht so ganz bei mir, weil er hinter den Namen immer noch so'n (?) dichtet:

obj:=@.Name; --der Name: Entity1.
obj.Wert:=obj.Wert+1;  --da er hier das Objekt immer Entity1 (?) nennt, findet er es nicht und gibt die Fehlermeldung: "Ein VOID kann keinen Wert empfangen..."

Erwin

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Erwin_S
Mitglied



Sehen Sie sich das Profil von Erwin_S an!   Senden Sie eine Private Message an Erwin_S  Schreiben Sie einen Gästebucheintrag für Erwin_S

Beiträge: 37
Registriert: 13.08.2006

erstellt am: 16. Aug. 2006 15:35    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Schon gut, das hat sich erledigt. Das Objekt mit dem richtigen Namen muss natürlich auch existieren...

Aber kann ich die Variable auch in einem anderen Netzwerk (eins höher) platzieren?
mit

obj:=@.Name;
root.obj.Wert:=root.obj.Wert +1;

klappt das nicht und auch nicht mit dem absoluten Bezeichner...

Erwin

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 16. Aug. 2006 15:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

mit "root" greifst Du auf das oberste Netzwerk innerhalb der Netzwerkhierarchie zu.

Versuchs mal mit "~.obj.wert"

Gruss

------------------
Der Simulator

Erwin_S
Mitglied



Sehen Sie sich das Profil von Erwin_S an!   Senden Sie eine Private Message an Erwin_S  Schreiben Sie einen Gästebucheintrag für Erwin_S

Beiträge: 37
Registriert: 13.08.2006

erstellt am: 16. Aug. 2006 15:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Das ist es leider auch nicht
(Das oberste Netzwerk wäre bei mir auch schon das richtige)
...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 16. Aug. 2006 16:05    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,

so gehts

obj:=~.@.Name;

Gruss

------------------
Der Simulator

Erwin_S
Mitglied



Sehen Sie sich das Profil von Erwin_S an!   Senden Sie eine Private Message an Erwin_S  Schreiben Sie einen Gästebucheintrag für Erwin_S

Beiträge: 37
Registriert: 13.08.2006

erstellt am: 16. Aug. 2006 16:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Also ich erhalte da ne Fehlermeldung in der Zeile.


Gruß Erwin

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP


Ex-Mitglied

erstellt am: 16. Aug. 2006 16:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat

Hi,


versuchs mal so

obj:=str_to_obj("~."+@.name);

Gruss

------------------
Der Simulator



Senior Konstrukteur (m/w/d)
Menschen und Technologien zu verbinden, den Perfect Match für unsere Kunden zu gestalten, immer die richtigen Expert:innen für die jeweilige Herausforderung zu finden - das ist unser Anspruch bei FERCHAU und dafür suchen wir dich: als ambitionierte:n Kolleg:in, der:die wie wir Technologien auf die nächste Stufe bringen möchte. Wir realisieren spannende Projekte für namhafte Kunden in allen Technologiebereichen ...
Anzeige ansehenKonstruktion, Visualisierung
Erwin_S
Mitglied



Sehen Sie sich das Profil von Erwin_S an!   Senden Sie eine Private Message an Erwin_S  Schreiben Sie einen Gästebucheintrag für Erwin_S

Beiträge: 37
Registriert: 13.08.2006

erstellt am: 16. Aug. 2006 16:29    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Super!!! Das hat geklappt! Vielen, vielen Dank für Deine Mühen!

Gruß Erwin 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz