Hallo liebe FT-Gemeinde,
habe mich in ROBOPro ganz gut eingearbeitet. Allerdings habe ich mich beim Thema Listenverarbeitung festgefahren:
Ich möchte dem Element mit dem Index n einen neuen Wert zuordnen. Egal was ich mache, entweder wird überhaupt kein Wert zugeordnet oder, wenn das entsprechende Zuordnungselement für Listen verwendet wird, wird der Wert für Index n an das Ende der Liste gehängt, egal wie der Index belegt ist.
Für mich stellt es sich im Moment so dar, dass Elemente, unabhängig vom Index, immer an die Liste angehängt werden. Man kann Werte auslesen, dafür benötigt man natürlich den Index und man kann einen Listeninhalt mit Stelle Null vertauschen, natürlich lässt sich Wert auch löschen.
Aber wie überschreibt man einen Wert?
Gruß
Barney
Nachhilfe in ROBOPro
Forumsregeln
Bitte beachte die Forumsregeln!
Bitte beachte die Forumsregeln!
Re: Nachhilfe in ROBOPro
Hallo Barney,
Vor kurzem habe ich eine FIFO (First in/first out) geschrieben, die nicht wie Rei Vilo's Queue auf die append und remove 0 funktion zurueckgreift, sondern direkt per indices drauf zugreift. Ich hatte aehnliche Probleme, bis ich die Liste per append funktion auf die benotigte laenge intitialisiert hatte. danach koennte ich mit jedem index zwischen 0 und Laenge-1 ohne problem schreiben und lesen.
Vielleicht hift es ja.
Gruesse Joachim
Vor kurzem habe ich eine FIFO (First in/first out) geschrieben, die nicht wie Rei Vilo's Queue auf die append und remove 0 funktion zurueckgreift, sondern direkt per indices drauf zugreift. Ich hatte aehnliche Probleme, bis ich die Liste per append funktion auf die benotigte laenge intitialisiert hatte. danach koennte ich mit jedem index zwischen 0 und Laenge-1 ohne problem schreiben und lesen.
Vielleicht hift es ja.
Gruesse Joachim
Re: Nachhilfe in ROBOPro
Hallo Joachim,
Danke für Deine Antwort. Aber ich komme damit nicht klar. Was genau muss ich machen, um das gewünschte Ziel zu erreichen (Programmablauf)?
Gruß
Barney
Danke für Deine Antwort. Aber ich komme damit nicht klar. Was genau muss ich machen, um das gewünschte Ziel zu erreichen (Programmablauf)?
Gruß
Barney
Re: Nachhilfe in ROBOPro
das sollte eigentlich mit dem blauen Zuweisungsbefehl (=) ohne Probleme funktionieren. Über den I(ndex)eingang mit dem =-Befehl ein Element auswählen ...
... das steht ja auch alles in der Hilfe (Kapitel 8.4.5:
Das funktioniert nur wenn wenn der Index, in den Du schreiben willst, kleiner als die aktuelle Größe bzw. Füllstand deiner Liste ist, d.h. das Element muss schon da sein. Elemente kannst Du entweder mit dem "Anhängen"-Befehl hineinschreiben, oder Du kannst die Liste schon im Listendialog initialisieren: Einfach zigmal den Hinzufügenknopf klicken, oder cvs, ...Über den Eingang I ( für Index ) kann ein bestimmtes Element der Liste ausgewählt werden. Dazu schickt man dem I-Eingang einen =-Befehl mit der gewünschten Elementnummer. Das erste Element hat dabei die Nummer 0. Dem Element, das über den I-Eingang ausgewählt wurde, kann man einen neuen Wert zuweisen, indem man an den S-Eingang mit einem =-Befehl den gewünschten neuen Wert schickt.
Falls das nicht funktionieren sollte, prüf nochmal, ob der Datentyp der Listendaten gleich dem des Zuweisungsbefehls-Befehls ist. Ich glaub, dass es da keine Warnung gibt.
Beste Güße,
Helmut
Re: Nachhilfe in ROBOPro
Die ganze Logik ist mir schon klar. Ich habe ein treffendes Beispielprogramm im Netz gefunden. Da funktioniert es. Also habe ich noch irgendwo einen Denkfehler. Da arbeite ich dran.
Vielen Dank für die Tipps und die Mühen.
Barney
Vielen Dank für die Tipps und die Mühen.
Barney