PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Arrayzugriff / mehrdimensionale Arrays ?



Skragan
06.06.2008, 11:31
Hallo,

ich habe ein kleines Problem zu bewältigen. Ich habe in meiner Software sechs Bytearrays(16), in welchen für 16 unterschiedliche Anbauteile jeweils die Details für 6 Ausgänge gespeichert werden.

Nun muss ich das Anbauteil wählen, dann den zu programmierenden Ausgang wählen und dort jeweils Bits klappern. Das Anbauteil liegt in Form einer Bytevariable 1..16 vor, also kein Problem. Der zu verändernde Ausgang liegt ebenfalls in einer Bytevariable 1...6 vor. Nun kann ich aber leider nicht mit der Zahl auf den Arraynamen schließen, denn die heißen ausgang1(16), ausgang2(16) usw.

Ich kann und will auch nicht bei allen Codeteilen endlose if/then-Abfragen einbauen. Hat jemand eine Idee, wie es besser geht ?

Gruß Skragan

Jaecko
06.06.2008, 13:46
Sind die Daten alle fest, also bei Programmstart im Speicher vorgegeben, oder werden die im Laufe des Programms geändert?

Falls ersteres könnte die Befehlskombination DATA und RESTORE interessant sein.

mare_crisium
06.06.2008, 13:51
Hi, Skragan,

tu' die Daten doch einfach in ein einziges Array, nennen wir's mal PortDaten(96). Die Dimension ist 6*16=96. Da schreibst Du der Reihe nach die Daten für alle 16 Anbauteile in Reihenfolge aufsteigender Anbauteil- und Portnummer 'rein. Den Zugriff auf das Array machst Du über eine Variable "AnbauTeilNr" (Wertebereich 0 bis 15) und die Portnummer( Wertebereich 0 bis 5). Beispiel: Du hast Anbauteil Nr. 4 und willst die Portdaten für Port Nr. 10 auslesen:

AnbauTeilNr = 4
Daten = PortDaten[AnbauTeilNr*16+10].

Meiner Meinung nach müsste es so gehen.

Ciao,

mare_crisium

Skragan
06.06.2008, 14:16
@Jaecko: Die Daten werden zwar zum Start einmal befüllt, danach aber oft wieder geändert.

@mare: -.- Na klar, das werde ich mal testen - sollte gehen !

Danke !