Ah, danke.
Am 14.06.2016 um 07:53 schrieb Wolfgang Jäth:
Am 14.06.2016 um 03:31 schrieb Horst:Hallo, ich habe sonst immer ein Indexarray mit +1 vergrößert. Jetzt wollte ich es mal verkleinern und stelle fest, das geht nicht. Es wird addiert. Außer man belegt das Feld vorher mit 0 Warum? Horst Sub test1 dim afeld(2)Wenn Du eine Variable so definierst, ist wie vom Typ *Variant*. Es heißt zwar, in Basic würden alle Vairablen vorinitialisiert, aber auf diesen Typ trifft das nur sehr bedingt [tm] zu. Wenn sie jeden beliebigen Typ aufnehmen kann, mit welchem Defaultwert (und damit Typ) soll sie denn dann bitte vorbelegt werden, als Integer, Double, Boolean, String, Datum, Objekt, multidimensionales Array, oder als was sonst? Eine Variable vom Typ Variant solltest Du also vor dem ersten Zugriff unbedingt zuerst manuell initialisieren. Oder grundsätzlich noch besser definierst Du die Variable gleich typisiert, also in dem Fall | dim afeld%(2) oder (noch klarer für den menschlichen Teil des Programms) | dim afeld(2) as integerstext="" afeld(0)=0 for f=0 to 2 wert=afeld(f) afeld(f)=afeld(f) -1Der Bug liegt IMHO eher darin, dass eine solche Anweisung auf einen /uninitialisierten/ Variant *überhaupt* ausgeführt wird, sprich dass ein "afeld(f)=afeld(f)+1" ein Ergebnis liefert, das /zufälligerweise/ auch noch den Erwartungen entspricht. Was ich meine, siehst Du, wenn Du afeld(0) mal nicht mit einem (letztendlich beliebigen) Integer-Wert, sondern mit z. B. einem Leerstring o. ä. vorbelegst; dann klappt nämlich auch "+1" nicht mehr ... Wolfgang
--------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
