Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Das ist in der Tat nicht so schwer, ein bisschen Grips bringe ich schon mit, auch als Newbie.
Ich versteh dennoch nicht wieso die Fehlermeldung kommt.
Wenn ich ein leeres Array mit 0 beginne zu indixieren, dürfe es doch gar nicht zu diesem Fehler kommen!?
Wenn ich das Array wie folgt in der Größe definieren möchte erhalte ich jedoch die Meldung "declaration without type" - vielleicht hängt es ja damit zusammen, bislang hatte ich auf den folgenden Code verzichtet weil ich annahm, dass ich dass (siehe oben) später machen könne..!?
"ArrayResize(my_array, 0);"
Du warst da vorhin schon auf der richtigen Spur.
Wenn Du array_size = ArraySize(Array[10]) abfragst, bekommst Du als Ergebnis array_size = 10 zurück. Die Größe des Aind zehn Felder.
Aber da das Array schon bei 0 anfängt sind die zehn Felder schon bei 9 vorbei. Fragst Du 10 ab, bist Du außerhalb der Reichweite Deines Arrays.
Also sobald Du Array[array_size] anforderst bekommst Du einen Out of Range Fehler
Hallo @pennyhunter
wenn ich Dich richtig verstehe müßte ich also um einfach ein neues Element zum Array hinzu zufügen nicht (wie ich es aus PHP kenne arraysize+1) sondern...
(Aktuell bekomme ich ja nichtmals das erste Element hinzugefügt)Danke für Deinen Beitrag aber das ist doch genau dass was ich bereits recht weit oben gepostet habe und damit lande ich ja immer beim Fehler "out of range". Zu beachten ist ggfls. dass ich mit einerm strukturiertem Array arbeite - (falls es relevant sein sollte)
Danke für Deinen Beitrag aber das ist doch genau dass was ich bereits recht weit oben gepostet habe und damit lande ich ja immer beim Fehler "out of range". Zu beachten ist ggfls. dass ich mit einerm strukturiertem Array arbeite - (falls es relevant sein sollte)
Befallen tust du immer mit beginn 1, es gibt keinen 0ten Wert beim Befüllen
wenn du 10 Werte in ein Array einliest dann sind das die Werte 1-10, wenn du das jetzt auslesen willst, dann sind das die Werte 0-9
da beim Auslesen immer mit 0 begonnen wird
Befallen tust du immer mit beginn 1, es gibt keinen 0ten Wert beim Befüllen
wenn du 10 Werte in ein Array einliest dann sind das die Werte 1-10, wenn du das jetzt auslesen willst, dann sind das die Werte 0-9
da beim Auslesen immer mit 0 begonnen wird
Hallo nochmals.
Also ich bedauere es wirklich, dass ich aktuell an solch einer simplen Sache festhänge und eine so umfangreiche Diskussion führe. Dennoch wäre etwas Geduld hilfreich - schön das Ihr wisst wie es geht - ich möchte es ja gerade verstehen...
Zur Sache ich habe nun nochmals den von @Dominik Egert geposteten Code genommen, soweit so gut.
Er läuft und gibt erwartungsgemäß 0 und 1 aus.
Gehe ich jedoch nun hin und möchte dieses neue Element befüllen, erhalte ich prompt wieder "out of range"
Verusche ich
komme ich einen Schritt weiter und sehe, dass dem "field1" der Wert 123 zugewiesen wurde - AHA!
(Warum haben field2 und field3 so seltsame Werte eigentlich hätten diese doch leer sein sollen?)
[field1] [field2] [field3]
123 1072911154 1.20746
das führte mich nun zu folgendem
und siehe da auch hier wird das Feld befüllt.
Nun komme ich zu dem Beitrag von @amando
Diese Erklärung würde ich nun für mich so umdeuten:
Hab ich das jetzt soweit korrekt dargestelltUm ein neues Element zu einem Array hinzuzufügen frage ich die Größe mit ArraySize() ab. Diese gibt bei einem leeren Array 0.
Nun erhöhe ich die Größe auf 1 "Zeile" im Array. Der Index dieser Zeile ist aber ja nicht 1 sonder 0, weil die Indexierung hier im übrigen analog wie bei PHP bei 0 beginnt.
Im Endeffekt liegt immer 1 als Abstand zwischen dem Wert von arraySize() (zumindest wenn ich nur die Größe Stück für Stück erzeuge die ich brauche) und dem Index der jeweiligen Zeile. Bsp.die nächste Zeile wäre dann nun