This is not working since I'm not trying to count null string symbols 
but symbols whit no data in it

regards,

p

Re: [amibroker] Re: How to Skip Empty Symbols when looping through 
wishlist 


symbols are strings, try




Count = Count + (myforeign != "");







Wednesday, November 19, 2008, 4:35:18 AM, you wrote:




> Having changed 

> IIf(IsNull(myforeign), Count, Count++);

> into

> Count = Count + IIf(IsNull(myforeign), 1, 0);

> is not working either.




> It really seems like IsNull function doesn't return True for empty 

> symbols.




> New entire code below




> // EmptySymbols finder

> // retrive comma-separated list of symbols

> // from Group 0

> list = CategoryGetSymbols(categoryGroup, 0);




> Count = 0;




> for( i = 0; ( sym = StrExtract( list, i ) ) != ""; i++ )

> {

> SetForeign(sym);

> myforeign = C;

> RestorePriceArrays();




> //if the symbol is empty Count is not increased

> Count = Count + IIf(IsNull(myforeign), 1, 0);




> _TRACE("symbol " + sym);

> _TRACE("Count " + Count);

> _TRACE("IsNull " + IsNull(myforeign));




> }







> --- In [email protected], "Mike" <[EMAIL PROTECTED]> wrote:




>> Actually, you are running into a documented side effect of IIF 

> usage. 




>> Specifically; the IIF statement always executes BOTH the true and 

> the 

>> false branches of the code. So, you will always have your Count++ 

> code 

>> executed regardless of the value of the IsNull expression.




>> Refer to the user guide for details:

>> http://www.amibroker.com/guide/afl/afl_view.php?id=72




>> Mike







>> --- In [email protected], "Paolo Cavatore" <pcavatore@> 

>> wrote:

>> >

>> > Does anyone know how to skip empty symbols when looping through 
a 

>> > list of them?

>> > 

>> > The code below shows that IsNull function doesn't return TRUE 
for 

>> > empty symbols.

>> > 

>> > Thanks,

>> > 

>> > paolo

>> > 

>> > // EmptySymbols finder

>> > // retrive comma-separated list of symbols

>> > // from Group 0

>> > list = CategoryGetSymbols(categoryGroup, 0); 

>> > 

>> > Count = 0;

>> > 

>> >    for( i = 0; ( sym = StrExtract( list, i ) ) != ""; i++ ) 

>> >    { 

>> >         SetForeign(sym);      

>> >     myforeign = C;

>> >     RestorePriceArrays();

>> >     

>> >     //if the symbol is empty Count is not increased

>> >     IIf(IsNull(myforeign), Count, Count++);

>> >         _TRACE("symbol " + sym);

>> >         _TRACE("Count " + Count);

>> >         _TRACE("IsNull " + IsNull(myforeign));

>> > 

>> >     }

>> >



Reply via email to