komischer Fehler
Hi,
habe hier einen echt komischen Fehler: so läuft das Programm fehlerlos: Code:
#property indicator_chart_window Code:
#property indicator_chart_window Das Feld[5] sollte doch da sein, wenn auch leer. ciao ping |
Dann würde ich einfach schreiben:
string Feld[]; traderdoc |
Zitat:
eine Lösung dafür ist ja einfach (wenn die Anzahl der Teilstrings nicht bekannt ist): Code:
#property indicator_chart_window |
Ja was heißt da "nee", wenn Du im darauffolgenden Code
string Feld[] selber benutzt? traderdoc |
Zitat:
meinst du "Alert(Feld[]);" im Orginalcode wollte ich Feld[5] einer Variablen zuweisen. NeueVariable[i]=Feld[5]; und da kam der "Array out of Range", weil teilweise (in einer Schleife aus einer Datei ausgelesen) kein 5.Teilstring in "Zeichenkette" vorhanden war. Ich würde das (bis jemand eine logische Begründung abliefert warum das so sein muss) als "Bug" bezeichnen. |
Dann probiere doch mal folgendes aus:
string Feld[6]; Alert(Feld[0]); // oder auch Index 1 bis 5 Was siehst Du da? traderdoc |
Hi,
abschließend sei angemerkt: egal wie man die Array-Variable Feld definiert string Feld[]; oder string Feld[1]; oder string Feld[5]; string Zeichenkette="0,1,2"; nach dem Funktionsaufruf StringSplit(Zeichenkette,StringGetCharacter(",",0) ,Feld); wird für Feld neuer Speicher allokiert. in diesem Fall hat Feld immer 3 Elemente. (sebst bei string Feld[1] wohlgemerkt) ciao ping |
Stringsplit
Jetzt hat mich das aber auch interessiert was da los ist mit dem StringSplit().
Also kleines Testscript gebaut und schon ist alles klar. Das Array wird nicht ReAlloziert. Ist es statisch zu klein, ergibt das einen Fehler. Ist es statisch zu groß, passiert nix. Das beste ist, das Array von Stringsplit() dynamisch allozieren zu lassen. :) Hier das TestScript: Teste das Feld statisch: Feld[3], Feld[7] und dynamisch Feld[] Code:
void OnStart() Grüße Otto |
"Das Array wird nicht ReAlloziert.
Ist es statisch zu klein, ergibt das einen Fehler. Ist es statisch zu groß, passiert nix." Ja, was denn sonst!? traderdoc |
Liste der Anhänge anzeigen (Anzahl: 3)
Hi traderdoc, hi Kronenchakra,
ich glaube wir arbeiten mit unterschiedlichen Builds die unterschiedlich arbeiten. Also ich habe Build 1045 und da ergeben sich folgende Ergebnisse: bei 1.: Code:
void OnStart() bei 2.: Code:
void OnStart() bei 3.: Code:
void OnStart() ... und das ist genau wie von mir beschrieben, das Feld wird neu allokiert! ... oder habe ich vieleicht "Build 1045 extended vision" und wusste bisher gar nix davon? ciao ping http://www.expert-advisor.com/forum/...lFTkSuQmCCAA== |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:15 Uhr. |
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum