PureBytes Links
Trading Reference Links
|
Hi Tomasz,
>> Local variables exist only inside user-defined functions. Simply
opening brace in global level does not constitute local level. <<
I think you are referring to
idx = StrExtract( indexesL , j ) ;
being repeated inside and outside the IF statement. That is a foolish
error on my part but since they are identical it had no effect on the
problem.
The problem seems to be with testing equality of a string against
Name() in the IF condition. What follows are 2 simplified code
snippets that demonstrated the problem. The only difference between
them is the location of the fopen and fclose statements. The 1st
works, the second doesn't.
If I replace ( Name() == "^DJI" ) with (1), they both work.
Bill
---
fh = fopen( filename, "w") ;
for (j=0; j<1; j++)
{
if ( Name() == "^DJI" )
{
fputs("Test\n", fh ) ;
}
}
fclose(fh) ;
---
for (j=0; j<1; j++)
{
if ( Name() == "^DJI" )
{
fh = fopen( filename, "w") ;
fputs("Test\n", fh ) ;
fclose(fh) ;
}
}
--- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko" <amibroker@xxxx>
wrote:
> Hello,
>
> Local variables exist only inside user-defined functions. Simply
opening brace
> in global level does not constitute local level.
>
> Best regards,
> Tomasz Janeczko
> amibroker.com
> ----- Original Message -----
> From: "Steve Dugas" <sjdugas@xxxx>
> To: <amibroker@xxxxxxxxxxxxxxx>
> Sent: Tuesday, June 28, 2005 4:22 AM
> Subject: Re: [amibroker] Possible File I/O bug.
>
>
> > Possibly because your test for fh is inside a set of brackets, it
is treated
> > as a seperate local variable? I might try moving it outside the
brackets,
> > something like this:
> >
> > fh = fopen( filename, "w") ;
> > for (j=0; fh AND j<7; j++)
> > {
> > idx = StrExtract( indexesL , j ) ;
> > if ( Name() == "^"+StrExtract( indexesU , j ) )
> > {
> > idx = StrExtract( indexesL , j ) ;
> > s = StrFormat( ",%f\n", LastValue(Highest( ATR( 1 ) ) ) ) ;
> > fputs(idx + s, fh ) ;
> > }
> > }
> > fclose(fh) ;
> >
> >
> > ----- Original Message -----
> > From: "bilbo0211" <bilbod@xxxx>
> > To: <amibroker@xxxxxxxxxxxxxxx>
> > Sent: Monday, June 27, 2005 8:14 PM
> > Subject: [amibroker] Possible File I/O bug.
> >
> >
> >>I am having a problem with file I/O. I don't know if it is a bug
or I
> >> am doing something I am not supposed to do.
> >>
> >> If I open a file and write to it multiple times in a loop, there
is no
> >> error but the file is always empty. If I use the same code except
open
> >> and close the file each time I write to it in the loop, the file
> >> contains the correct data.
> >>
> >> What follows are 2 pieces of code that demonstrates the problem.
1st
> >> is the one that gives the empty file, them the one that gives the
> >> correct data.
> >>
> >> Bill
> >> ---
> >> Buy=0;
> >> Sell=0;
> >> indexesL = "dji,ixic,ndx,rut,spx,vay,vlic" ;
> >> indexesU = "DJI,IXIC,NDX,RUT,SPX,VAY,VLIC" ;
> >>
> >> filename = "d:\\tmp\\amibroker\\cycles\\highest_tr.dat" ;
> >> fh = fopen( filename, "w") ;
> >> for (j=0; j<7; j++)
> >> {
> >> idx = StrExtract( indexesL , j ) ;
> >> if ( Name() == "^"+StrExtract( indexesU , j ) )
> >> {
> >> idx = StrExtract( indexesL , j ) ;
> >> s = StrFormat( ",%f\n", LastValue(Highest( ATR( 1 ) ) ) ) ;
> >> if(fh)
> >> {
> >> fputs(idx + s, fh ) ;
> >> }
> >> }
> >> }
> >> fclose(fh) ;
> >> ---
> >> Buy=0;
> >> Sell=0;
> >> indexesL = "dji,ixic,ndx,rut,spx,vay,vlic" ;
> >> indexesU = "DJI,IXIC,NDX,RUT,SPX,VAY,VLIC" ;
> >>
> >> filename = "d:\\tmp\\amibroker\\cycles\\highest_tr.dat" ;
> >>
> >> for (j=0; j<7; j++)
> >> {
> >> idx = StrExtract( indexesL , j ) ;
> >> if ( Name() == "^"+StrExtract( indexesU , j ) )
> >> {
> >> idx = StrExtract( indexesL , j ) ;
> >> s = StrFormat( ",%f\n", LastValue(Highest( ATR( 1 ) ) ) ) ;
> >> if (j==0)
> >> fh = fopen( filename, "w") ;
> >> else
> >> fh = fopen( filename, "a") ;
> >> if(fh)
> >> {
> >> fputs(idx + s, fh ) ;
> >> fclose(fh) ;
> >> }
> >> }
> >> }
> >> ---
> >>
> >>
> >>
> >>
> >> Please note that this group is for discussion between users only.
> >>
> >> To get support from AmiBroker please send an e-mail directly to
> >> SUPPORT {at} amibroker.com
> >>
> >> For other support material please check also:
> >> http://www.amibroker.com/support.html
> >>
> >>
> >> Yahoo! Groups Links
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >
> >
> >
> >
> > Please note that this group is for discussion between users only.
> >
> > To get support from AmiBroker please send an e-mail directly to
> > SUPPORT {at} amibroker.com
> >
> > For other support material please check also:
> > http://www.amibroker.com/support.html
> >
> >
> > Yahoo! Groups Links
> >
> >
> >
> >
> >
> >
> >
Please note that this group is for discussion between users only.
To get support from AmiBroker please send an e-mail directly to
SUPPORT {at} amibroker.com
For other support material please check also:
http://www.amibroker.com/support.html
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/amibroker/
<*> To unsubscribe from this group, send an email to:
amibroker-unsubscribe@xxxxxxxxxxxxxxx
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|