Array verschieben

xXyYzZ

Level-1
Beiträge
67
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

etwas an dem ich mir im Moment die Zähne ausbeiße:

Ich habe eine Array mit den zehn Werten [1..10]. Es wird nun ein neuer Wert hinzugefügt, die älteste wird gelöscht, die jüngeren eins nach hinten geschoben:

Code:
L DB1.Data[9].Test1
T DB1.Data[10].Test1
L DB1.Data[8].Test1
T DB1.Data[9].Test1
... etc.

Das Array soll später noch vergrößert werden (steht noch nicht ganz fest), die Anzahl der Variablen beträgt ca. Test1 - Test10.

Welcher weg ist der effektivste bzw. schönste?

Danke!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für den Link - werd es dann für mich anpassen (unterschiedliche Datentypen etc.).

Hab es nach der Methode von Volker probiert: Pointer Zeiger FIFO LIFO

Code:
      AUF   DB126                //Typ: Block_DB
      L     258                         //Typ: INT
      L     1
      -I    
      T     "ZAEHLER"                   //Typ: DINT
anf:  NOP   0                           //Schleifenanfang
      L     "ZAEHLER"
      SLD   3                           //pointer erzeugen
      LAR1                              //in das Adressregister laden
      L     DBB [AR1,P#0.0]
      T     DBB [AR1,P#26.0]
      L     "ZAEHLER"
      L     1
      -I                                //Index um 1 verringern
      T     "ZAEHLER"
      L     1
      +I    
      L     0                           //Typ: INT
      <=I                               //prüfen ob fertig
      SPB   ende                        //wenn ja ende
      SPA   anf                         //sonst schleife wiederholen
ende: NOP   0

Ich verschiebe aber nicht um ein Byte, sondern um 26 - klappt soweit auch... allerdings schreibt er verkehrt herum - von 1 nach 2, dann 2 nach 3 etc.

Muss ich eigentlich das AR1 vorher sichern und dann wiederherstellen?
 
Zuletzt bearbeitet:
Zurück
Oben