übergabe feld an objekt

TobiTo

Mitglied
Hallo,

ich verzweifle seit Stunden an der korrekten Füllung eines Objektes. Hoffe das Problem eingekreist zu haben:

mir ist die Übergabe eines Feldes einer Funktion an ein Objekt nicht ganz klar. Die Funktion "DetectNumInLine" übergibt das Feld "Zahl5()" mit:

Code:
   ....
  Zahl5(x) = ....  
Next x

DetectNumInLine = Zahl5()

an das Objekt "DatX(a).ZeileX(i).NumValue()" mit:

Code:
ReDim Preserve DatX(a)
ReDim Preserve DatX(a).ZeileX(i)
ReDim Preserve DatX(a).ZeileX(i).NumValue(NumDetect.x)
DatX(a).ZeileX(i).NumValue() = (NumDetect.DetectNumInLine(key_line))

soweit so gut. Klappt!
ABER: Das Objekt wird mit einer Schleife gefüllt, und die a und i Felder sind korrekt, aber die NumValue() wird nur abgelegt, und ist in der nächsten Schleife nicht mehr verfügbar (Struktur ist gar nicht mehr da).

Sieht jemand meinen Fehler?
 
ok, Problem gelöst! ;) ;) ;)

Mir war nicht bekannt, dass mit ReDim ein mehrdimensionales Feld zu erweitern nicht ohne Einschränkungen geht. Es kann nur die äußere Dimension verlustfrei erweitert werden.

So ist z.B. wenn Test(1,1,1)
Code:
 ReDim Preserve Test(1,1,2)
möglich,
Code:
 ReDim Preserve Test(1,2,1)
aber nicht!

(gibt keine Fehlermeldung, Inhalte der äußeren Dimension Test(1,1,"1") gehen aber verloren)


Gruß TobiTo
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück