Holger Lersch: Array dynamisch deklarieren .... ?

Hallo Zusammen !

Folgendes Problem :

Laut meiner "ASP-Bibel" von Jörg Krause (S.190) ist es möglich Arrays zu deklarieren, ohne die Anzahl der Dimensionen festzulegen. also :...

<%
...
DIM headlines()
...
%>

sobald ich aber jetzt in diese Array einen Wert schreiben möchte,...

<%
...
headlines(0)="Erste Ueberschrift"
...
%>

...gibt die ASP Engine folgende Fehlermeldung raus : Microsoft VBScript runtime error     '800a0009' - Subscript out of range.

Geht das wirklich nicht, oder begen ich grade irgendwo einen Denkfehler ?

Gruß
Holger

  1. Hi!
    Soweit ich weiß kannst Du nicht einfach ein neues Feld hinzufügen.
    Du mußt folgendes eingeben

    Dim headlines()
    Redim Preserve headlines(2)
    headlines(1)="Dies ist eine Überschrift"
    headlines(2)="Dies auch"
    Redim Preserve headlines(3)
    headlines(3)="Selbst dies"

    Du mußt also über Redim, die neue Größe des Arrays angeben. Die Option Preserve brauchst Du eigentich erst, wenn schon irgendetwas in dem Array drinsteht. Sie dient dazu, daß die Daten, die bereits in dem Array stehen nicht verloren gehen.
    Achte aber immer auf die richtige Dimensionierung des Arrays. Solltest Du nämlich unter mein kleines Beispiel noch:
    Redim Preserve headlines(2)

    eingeben, so hilft auch Preserve nichts mehr. Das 3. Array-Feld wäre verloren.

    Ich hoffe es hilft Dir weiter

    Janko