PDA

View Full Version : Zweidimensionales Array



stoerfang
09-08-06, 09:52
Hallo zusammen,

wie definiere ich ein zweidimensionales in den D-Spezifikationen und wie kann es füllen.

bei einem:
D Array S 8A DIM(50)

C ZAHL = 1
.....
c MOVE FELD ARRAY(ZAHL)
C EVAL ZAHL = ZAHL + 1


wie würde ich dass hier machen mit Zwei Feldern ?

Danke und Gruss
stoerfang

Rincewind
09-08-06, 12:12
Hi,

Finde grad kein Beispiel,
aber müsste so in der art gehen...

D Datenstruktur1 occurs(999)
d feld1 8 a
d fled2 2 a dim(99)




Ansprechen kann man die dann als

Datenstruktur1(22).fled2(4)

Such mal nach den Stichworten:
Benannte Datenstruktur


Schönen Gruß

Rince

Fuerchau
09-08-06, 12:25
Nicht mit OCCURS!

D MYDS DS DIM(10) qualified <= erforderlich !
D MYFLD 10 DIM(10)

Zugriff ist dann
myds(1).myfld(1)

Mehr als 2 Dimensionen sind dann auch mit LIKEDS machbar.

stoerfang
09-08-06, 13:27
D STRUCT DS DIM(50) qualified
D ERKZ 2a DIM(50)

aber wie fülle ich dieses Felder? Mache ein READE auf eine Datei und er soll mir dann zwei Felder in diese Struktur schreiben.
Und weiter und weiter.... bis For- Schleife zu ende ist.

IF *IN98=*OFF
MOVE Feld1 VERS(ZAHL)
MOVE Feld2 ERKU(ZAHL)

EVAL Zahl = Zahl +1
ENDIF

Rincewind
09-08-06, 13:42
Hi,

Du kannst die Felder ganz einfach ansprechen

Struct(zahl1).Erkz(Zahl2) = wertausdatei

Wenn du 2 Felder haben willst..

D Struct DS DIM(50) qualified
erkz 2a DIM(50)
nochn 3a Dim(50)



eval struct(i).erkz(z) = wert1
eval struct(i).erkz(z) = wert2

Wobei i und z deine Zähler aus den 2 Schleifen sind und wert1 und wert2 aus der Datei kommen.
Die Zähler können auch Werte aus der Datei sein:

eval struct(kundennr).erkz(umsatzmonat) = wert3

Je nachdem wie dus brauchst.

Gruß
Rince

P.s. Sorry wegen dem occur, hab kein sourcebeispiel gefunden und auswendig wusst ichs nicht genau

stoerfang
09-08-06, 14:08
Vielen Dank für Eure Hilfe !!!!

Wünsche noch einen schönen Tag !!

Gruss stoerfang