Array größe bestimmen.

Guts2
2007-12-28
2008-01-05
  • Guts2 - 2007-12-28

    Hallo, ich hätte mal wieder eine Frage und zwar will ich einen unbekannten Array bearbeiten können. Muß dafür aber wissen wieviel Zeilen und wieviel Spallten der Array hat. Gibt es eine Funktion oder einen Befehl der diese Daten ausgibt?

     
  • hugo - 2008-01-02

    wir benutzen einen trick um zumindest die größe eines eindimensionalen arrays zu bestimmen.

    dazu übergeben wir nicht das array, sondern einen pointer auf das array und zusätzlich die größe des arrays.

    das sieht für eine array sort routine wie folgt aus:

    _array_sort(adr(unbekannt),sizeof(unbekannt)).

    da aber nur die größe in bytes ermittelt werden kann sagt das nichts über die struktur aus, es geht also nur vernünftig über eindimensionale arrays

    das ganze kannst du dir im source ansehen in unserer lib

    w www.oscat.de w

     
  • cmoeller - 2008-01-03

    Hallo Hugo,

    durch die Definietion eines neuen Datentypes(STRUCT) lassen sich mehrdimensionale ARRAY's auf ein eindimensionales ARRAY [0..x] OF MyStruct zurückführen.

    Die Anzahl der Elemente im Array kann dann über SIZEOF(MyArray)/SIZEOF(MyStruct) ermittelt werden.

    Gruss cmoeller

     
  • hugo - 2008-01-05

    ja sicher aber wenn du keinerlei wissen über die datenstruktur hast dann geht das eben nicht die frage oben war unbekannte anzahl von zeilen und unbekannte anzahl von spalten.

    das könnte dann sein ein array[0..19] of real

    oder genauso ein array [0..9,0..1] of real

    oder etliche weitere alle hätten dieselbe größe

    aber über die struktur wäre nichts bekannt.

    dasselbe hätte ich auch schön öfters gesucht z.b. zum bearbeiten einer beliebigen matrix.

     

Log in to post a comment.