I'm not totally sure, but maybe by re-sizing the array to 0 and then re-sizing again to whatever you want all values will be "".
Otherwise you could use string split
This simple code shows how it would work. Note that if you want the array size as 10 the string will be 9 commas (10-1)
string ArrayInit=",,,,,,,,,"; string sC[]; ushort u_sep=StringGetCharacter(",",0); StringSplit(ArrayInit,u_sep,sC); int as=ArraySize(sC); string text="Array Size="+(string)as; for(int x=0;x<as;x++) { if(sC[x]=="") text+=" "+(string)x+" is Blank,"; else text+=" "+(string)x+" is NOT Blank,"; } Print(text); ArrayInit=",,,,"; StringSplit(ArrayInit,u_sep,sC); as=ArraySize(sC); text="Array Size="+(string)as; for(int x=0;x<as;x++) { if(sC[x]=="") text+=" "+(string)x+" is Blank,"; else text+=" "+(string)x+" is NOT Blank,"; } Print(text);
![MQL5 - Language of trade strategies built-in the MetaTrader 5 client terminal](https://c.mql5.com/i/registerlandings/logo-2.png)
You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register
Is there a simpler way to reset a string array than to loop through each individual reference?
If I define that array i can write:
If I try to 'repeat' this later in the code:
I'll get an error and the mt4 functions ArrayFill() or ArrayInitialize() work only for numerical arrays :(
Ok, I can loop:
string sC[] = {"1","2","3","4","5","6","7","8","9","0"}; int sz = ArraySize(sC) - 1; // SIC!! while(sz>=0) sC[(sz--)]="";
But I'd prefer something like the the definition...
remark: Other than I am used to (sz--) is not decremented at first and then used as index no. but after that!
This will give you an Array out of Range Error:
Well ok I just saw in the reference and checked it out that this (--sz) works: