-> Hier kostenlos registrieren
Hallo, ich muss gerade für eine Rezeptverwaltung etwas testen. Die Frage ist, ob ich alle nötigen Datensätze in ein Array legen kann, um dann damit einen später selektieren kann. Wir haben einfach mal gesagt, dass es 256 Variablen mit einer Grösse von 64 bit in dem Datensatz gibt. Diesen Prozess-Parameter-Datensatz, gibt es dann in X Variationen. Wie viele Variationen ich speichern kann, will ich testen. Dazu habe ich ein Array aufgebaut.
Das UDT habe ich in 2 Versionen getestet.
Einmal habe ich eine UDT mit 256 Variablen mit dem Typ LINT (64bit) angelegt.

Dann habe ich ein UDT mit 64 Variablen vom Typ Bool erstellt. Den Typ habe ich dann 265 mal in einem weiteren UDT aufgerufen.
Das Ergebnis ist aber unterschiedlich:

Das UDT mit 265 LINT var kann ich 8192 mal in einem Array aufrufen, ohne das direkt eine Fehler angezeigt wird. Das UDT mit 265 Variablen bestehen aus 64 bool Variablen kann ich in dem Array nur 1020 mal aufrufen, ohne das direkt ein Fehler angezeigt wird.
Aber Übersetzen kann ich es nur, wenn ich die LINT Version auf 8000 Array Einträge reduzieren.

Kann mir jemand sagen, woher der Unterschied kommt? Warum kann ich das Array länger machen, wenn keine Bool Var verwende?
Array [0..x] of typeProzessParameter
Das UDT habe ich in 2 Versionen getestet.
Einmal habe ich eine UDT mit 256 Variablen mit dem Typ LINT (64bit) angelegt.

Dann habe ich ein UDT mit 64 Variablen vom Typ Bool erstellt. Den Typ habe ich dann 265 mal in einem weiteren UDT aufgerufen.
Das Ergebnis ist aber unterschiedlich:

Das UDT mit 265 LINT var kann ich 8192 mal in einem Array aufrufen, ohne das direkt eine Fehler angezeigt wird. Das UDT mit 265 Variablen bestehen aus 64 bool Variablen kann ich in dem Array nur 1020 mal aufrufen, ohne das direkt ein Fehler angezeigt wird.
Aber Übersetzen kann ich es nur, wenn ich die LINT Version auf 8000 Array Einträge reduzieren.

Kann mir jemand sagen, woher der Unterschied kommt? Warum kann ich das Array länger machen, wenn keine Bool Var verwende?