Nachhilfe in ROBOPro

Alles rund um TX(T) und RoboPro, mit ft-Hard- und Software
Computing using original ft hard- and software
Forumsregeln
Bitte beachte die Forumsregeln!
Antworten
Barney_B
Beiträge: 16
Registriert: 12 Feb 2013, 21:21

Nachhilfe in ROBOPro

Beitrag von Barney_B » 20 Mär 2013, 17:15

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

jona2004
Beiträge: 149
Registriert: 10 Jun 2011, 22:30

Re: Nachhilfe in ROBOPro

Beitrag von jona2004 » 20 Mär 2013, 17:46

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

Barney_B
Beiträge: 16
Registriert: 12 Feb 2013, 21:21

Re: Nachhilfe in ROBOPro

Beitrag von Barney_B » 20 Mär 2013, 17:59

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

hamlet
Beiträge: 332
Registriert: 12 Jan 2011, 21:41

Re: Nachhilfe in ROBOPro

Beitrag von hamlet » 20 Mär 2013, 19:18

    Hallo Barney,
    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:
    Ü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.
    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, ...
    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

    Barney_B
    Beiträge: 16
    Registriert: 12 Feb 2013, 21:21

    Re: Nachhilfe in ROBOPro

    Beitrag von Barney_B » 20 Mär 2013, 21:19

    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

    Antworten