[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [amibroker] Re: Image Copy Problem even when copied to Word.



PureBytes Links

Trading Reference Links

Salil,

Try using Microsoft PAINT (from Accessories). Do you see the same problem
using PAINT ? Try MS Word too. 
If it works everywhere except your XnView, maybe it is XnView  problem?

Best regards,
Tomasz Janeczko
amibroker.com
----- Original Message ----- 
From: "salil_gangal" <salil_gangal@xxxxxxxxx>
To: <amibroker@xxxxxxxxxxxxxxx>
Sent: Friday, May 23, 2003 12:35 AM
Subject: [amibroker] Re: Image Copy Problem even when copied to Word.


> Tomasz,
> 
> Even before re-installing AmiBroker I was getting similar black-bar 
> at the bottom of the image.  See the image ===>
> 
>    http://fundvision.com/wwwboard/messages/43686.shtml
> 
> It will be helpful if this black-bar is eliminated.
> 
> Regards,
> 
> - Salil V Gangal
> 
> 
> --- In amibroker@xxxxxxxxxxxxxxx, "Tomasz Janeczko" <amibroker@xxxx> 
> wrote:
> > Salil,
> > 
> > Thank you for posting the image. Indeed it should look different.
> > The bottom bar should be in the background color (in your setup 
> grey)
> > and show "created with Amibroker.." text.
> > Will check this out.
> > 
> > Best regards,
> > Tomasz Janeczko
> > amibroker.com
> >   ----- Original Message ----- 
> >   From: Salil V Gangal 
> >   To: amibroker@xxxxxxxxxxxxxxx 
> >   Sent: Thursday, May 22, 2003 7:21 PM
> >   Subject: RE: [amibroker] Re: Image Copy Problem even when copied 
> to Word.
> > 
> > 
> >   Ken and Ara,
> > 
> >   I re-installed AmiBroker over the existing installation and 
> applied the latest Beta patch. I'll attach what I get as copied 
> image.  Still the black-bar at the bottom of the image is visible. I 
> used XnView to copy the image.
> > 
> >   Regards,
> >   - Salil V Gangal
> > 
> > 
> >   Ken Close <closeks@xxxx> wrote:
> >     Salil: no problems with my setup, copying with both bitmap and 
> metafile.
> >     I see that TJ put in a message along the bottom "Created with 
> Amibroker
> >     ... " so perhaps this added text message is somehow causing 
> your bitmap
> >     to show a black border.  My graph background is black and the 
> message is
> >     in white text along the bottom.
> > 
> >     Ken
> > 
> >     -----Original Message-----
> >     From: salil_gangal [mailto:salil_gangal@x...] 
> >     Sent: Thursday, May 22, 2003 12:01 PM
> >     To: amibroker@xxxxxxxxxxxxxxx
> >     Subject: [amibroker] Re: Image Copy Problem even when copied to 
> Word.
> > 
> >     Friends,
> > 
> >     Similar problem comes-up if the copied image is pasted into 
> Microsoft 
> >     WORD.  So I guess there is a bug in AmiBroker.  Are there any 
> others 
> >     who have noticed that there is a bar at the bottom of the 
> copied 
> >     image copied using 'Edit->Image Copy' ?
> > 
> >     Regards,
> > 
> >     - Salil V Gangal
> > 
> > 
> >     --- In amibroker@xxxxxxxxxxxxxxx, Salil V Gangal 
> <salil_gangal@xxxx> 
> >     wrote:
> >     > Tomasz,
> >     > 
> >     > I am copying chart image using 'Edit->Copy As Image'.
> >     > 
> >     > But I noticed that copied image gets a black-band at the 
> bottom.  
> >     Have you noticed
> >     > anything like this ?  Is this a bug ?  BTW, I import the 
> image into 
> >     XnView, and I'm
> >     > not sure if this is AmiBroker issue or XnView issue.
> >     > 
> >     > Regards,
> >     > 
> >     > - Salil V Gangal
> >     > 
> >     > 
> >     > --- Tomasz Janeczko <amibroker@xxxx> wrote:
> >     > > Hello,
> >     > > 
> >     > > A new beta version (4.38.0) of AmiBroker has just been 
> released.
> >     > > 
> >     > > It is available for registered users only from the members 
> area 
> >     at:
> >     > > http://www.amibroker.com/members/bin/ab4380beta.exe
> >     > > 
> >     > > If you forgot your user name / password to the members area
> >     > > you can use automatic reminder service at: 
> >     http://www.amibroker.com/login.html
> >     > > 
> >     > > Short list of changes in this beta (read change log in 
> the "read 
> >     me" below for the
> >     > > details)
> >     > > 
> >     > > a.. send e-mails with charts directly from AmiBroker: Edit-
> >Image-
> >     >Send by email
> >     > > and File->Send chart via e-mail 
> >     > > a.. added export chart image to PNG (portable network 
> graphics) 
> >     file:
> >     > > Edit->Image->Export to PNG file 
> >     > > 
> >     > > a.. new setting for candlestick appearance: Tools-
> >Preferences-
> >     >Charting, "Use
> >     > > distinct color for" : "None, up candle hollow" - it plots 
> entire 
> >     candle with one
> >     > > color but leaves interior of UP candle body hollow.
> >     > > 
> >     > > a.. fixed positioning of arrows in image copies (Edit-
> >Image-
> >     >Copy)
> >     > > 
> >     > > a.. fixed crash occurring when printer device context did 
> not 
> >     support bit blit
> >     > > copies. added very simple arrow line drawing for that case 
> (will 
> >     be improved in
> >     > > future releases)
> >     > > 
> >     > > a.. fixed bug in handling Null with new constructs: if, 
> while and 
> >     for.
> >     > > 
> >     > > a.. numbers (floats) are now automatically 'upsized' to 
> arrays on 
> >     first use of
> >     > > l-value array subscript operator without causing error. 
> >     > > .
> >     > > 
> >     > > Best regards,
> >     > > Tomasz Janeczko
> >     > > amibroker.com
> >     > > 
> >     > > AmiBroker 4.38.0 Beta Read Me
> >     > > May 20, 2003 1:11 
> >     > > 
> >     > > THIS IS AN EARLY BETA VERSION OF THE SOFTWARE. EXPECT 
> BUGS !!!
> >     > > 
> >     > > AGAIN: THIS IS AN EARLY BETA VERSION OF THE SOFTWARE. 
> EXPECT 
> >     BUGS !!!
> >     > > 
> >     > > 
> >     > > Backup your data files and entire AmiBroker folder first!
> >     > > 
> >     > > INSTALLATION INSTRUCTIONS
> >     > > 
> >     > > IMPORTANT: This archive is update-only. You have to install 
> full 
> >     version 4.30
> >     > > first. 
> >     > > 
> >     > > Just run the installer and follow the instructions. 
> >     > > 
> >     > > Then run AmiBroker. You should see "AmiBroker 4.38.0 beta" 
> >     written in the About
> >     > > box.
> >     > > 
> >     > > See CHANGE LOG below for detailed list of changes.
> >     > > 
> >     > > HELP ON NEW FEATURES
> >     > > USER-DEFINABLE FUNCTIONS, PROCEDURES, LOCAL/GLOBAL 
> VARIABLES 
> >     (4.34 or higher)
> >     > > 
> >     > > Here is a sample code showing user-defined function:
> >     > > 
> >     > > // the following function is 2nd order smoother
> >     > > 
> >     > > function IIR2( input, f0, f1, f2 )
> >     > > {
> >     > >   result[ 0 ] = input[ 0 ];
> >     > >   result[ 1 ] = input[ 1 ]; 
> >     > > 
> >     > >   for( i = 2; i < BarCount; i++ )
> >     > >   {
> >     > >     result[ i ] = f0 * input[ i ] + 
> >     > >     f1 * result[ i - 1 ] + 
> >     > >     f2 * result[ i - 2 ]; 
> >     > >   }
> >     > > 
> >     > >   return result;
> >     > > }
> >     > > 
> >     > > Plot( Close, "Price", colorBlack, styleCandle );
> >     > > Plot( IIR2( Close, 0.2, 1.4, -0.6 ), "function example", 
> >     colorRed ); 
> >     > > 
> >     > > 
> >     > > In this code IIR2 is a user-defined function. input, f0, 
> f1, f2 
> >     are formal
> >     > > parameters of the functions.
> >     > > At the time of function call the values of arguments are 
> passed 
> >     in these
> >     > > variables. Formal parameters behave like local variables.
> >     > > Later we have result and i which are local variables. Local 
> >     variables are visible
> >     > > inside function only. If any other function uses the same 
> >     variable name they won't
> >     > > interfere between each other.
> >     > > 
> >     > > Due to the fact that AFL does not require to declare 
> variables 
> >     the decision
> >     > > whenever given variable is treated as local or global is 
> taken 
> >     depends on where it
> >     > > is FIRST USED.
> >     > > 
> >     > > If given identifier appears first INSIDE function 
> definition - 
> >     then it is treated
> >     > > as LOCAL variable.
> >     > > If given identifier appears first OUTSIDE function 
> definition - 
> >     then it is treated
> >     > > as GLOBAL variable.
> >     > > 
> >     > > This default behaviour can be however overriden using 
> global and 
> >     local keywords
> >     > > (introduced in 4.36) - see example 2.
> >     > > 
> >     > > Example (commentary):
> >     > > 
> >     > > k = 4; // this is GLOBAL variable
> >     > > 
> >     > > function f( x )
> >     > > {
> >     > >   z = 3; // this is LOCAL variable
> >     > >   return z * x * k; // 'k' here references global variable 
> k 
> >     (first used above
> >     > > outside function)
> >     > > }
> >     > > 
> >     > > z = 5; // this is GLOBAL variable with the same name as 
> local 
> >     variable in function
> >     > > f
> >     > > 
> >     > > "The value of z before function call :" + WriteVal( z );
> >     > > 
> >     > > // Now even if we call function 
> >     > > // the value of our global variable z 
> >     > > // is not affected by function call because
> >     > > // global variable z and local variable z are separate and 
> >     > > // arguments are passed by value (not by reference)
> >     > > 
> >     > > "The result of f( z ) = " + WriteVal( f( z ) );
> >     > > 
> >     > > "The value of z after function call is unchanged : " + 
> WriteVal( 
> >     z );
> >     > > 
> >     > > 
> >     > > Example 2: Using local and global keywords to override 
> default 
> >     visibility rules:
> >     > > 
> >     > > VariableA = 5; // implict global variable
> >     > > 
> >     > > function Test()
> >     > > {
> >     > >  local VariableA;  // explicit local variable with the same 
> >     identifier as global 
> >     > >  global VariableB; // explicit global variable not defined 
> earlier
> >     > >                    // may be used to return more than one 
> value 
> >     from the function
> >     > > 
> >     > >  VariableA = 99;
> >     > >  VariableB = 333;
> >     > > } 
> >     > > 
> >     > > VariableB = 1; // global variable
> >     > > 
> >     > > "Before function call";
> >     > > "VariableA = " + VariableA;
> >     > > "VariableB = " + VariableB;
> >     > > 
> >     > > Test(); 
> >     > > 
> >     > > "After function call";
> >     > > "VariableA = " + VariableA + " (not affected by function 
> call )";
> >     > > "VariableB = " + VariableB + " (affected by the function 
> call )"
> >     > > 
> >     > > At the end of the function we can see 'return' statement 
> that is 
> >     used to return
> >     > > the result to the caller. Note that currently return 
> statement 
> >     must be placed at
> >     > > the very end of the function.
> >     > > 
> >     > > It is also possible to write a procedure (a function that 
> returns 
> >     nothing (void))
> >     > > 
> >     > > procedure SinePlotter( Freq, ColorIndex )
> >     > > {
> >     > >   pname = "Line"+WriteVal(ColorIndex,1.0);
> >     > >   array = sin( Cum( Freq * 0.01 ) );
> >     > >   Plot( array, pname , colorRed + ColorIndex, styleThick );
> >     > > }
> >     > > 
> >     > > for( n = 1; n < 10; n++ )
> >     > > {
> >     > >   SinePlotter( n/2+Cum(0.01), n );
> >     > > }
> >     > > 
> >     > > Note that although there are two separate 
> keywords 'function' 
> >     and 'procedure'
> >     > > AmiBroker currently treats them the same (they both accept 
> return 
> >     values but not
> >     > > require them), but in the future the rules maight get 
> enforced to 
> >     use
> >     > > return statement ONLY in conjunction with function keyword. 
> So it 
> >     is advised to
> >     > > use function keyword in case when your function returns any 
> value 
> >     and procedure
> >     > > keyword otherwise.
> >     > > 
> >     > > Note also that recursion (having a function call itself 
> from 
> >     within itself) is NOT
> >     > > supported as for now.
> >     > > 
> >     > > 
> >     > > FLOW CONTROL AND LOOPING (4.31 or higher)
> >     > > 
> >     > > do-while Statement
> >     > > 
> >     > > The do-while statement lets you repeat a statement or 
> compound 
> >     statement until a
> >     > > specified expression becomes false. 
> >     > > 
> >     > > Syntax
> >     > > 
> >     > > do statement while ( expression ) ;
> >     > > 
> >     > > The expression in a do-while statement is evaluated after 
> the 
> >     body of the loop is
> >     > > executed. Therefore, the body of the loop is always 
> executed at 
> >     least once. 
> >     > > 
> >     > > The expression must have numeric or boolean type. Execution 
> >     proceeds as follows: 
> >     > > 
> >     > >   1.. The statement body is executed.
> >     > > 
> >     > > 
> >     > >   2.. Next, expression is evaluated. If expression is 
> false, the 
> >     do-while
> >     > > statement terminates and control passes to the next 
> statement in 
> >     the program. If
> >     > > expression is true (nonzero), the process is repeated, 
> beginning 
> >     with step 1. 
> >     > > This is an example of the do-while statement:
> >     > > 
> >     > > x=100;
> >     > > do 
> >     > > {
> >     > >     y = sin( x );
> >     > >     x--;
> >     > > } while ( x > 0 );
> >     > > In this do-while statement, the two statements y = sin( 
> x ); and 
> >     x--; are
> >     > > executed, regardless of the initial value of x. Then x > 0 
> is 
> >     evaluated. If x is
> >     > > greater than 0, the statement body is executed again and x 
> > 0 is 
> >     reevaluated. The
> >     > > statement body is executed repeatedly as long as x remains 
> >     greater than 0.
> >     > > Execution of the do-while statement terminates when x 
> becomes 0 
> >     or negative. The
> >     > > body of the loop is executed at least once. 
> >     > > 
> >     > > 
> >     > > while Statement
> >     > > The while statement lets you repeat a statement until a 
> specified 
> >     expression
> >     > > becomes false. 
> >     > > 
> >     > > Syntax
> >     > > 
> >     > > while ( expression ) statement
> >     > > 
> >     > > The expression must have arithmetic (numeric/boolean) type. 
> >     Execution proceeds as
> >     > > follows: 
> >     > > 
> >     > >   1.. The expression is evaluated.
> >     > > 
> >     > > 
> >     > >   2.. If expression is initially false, the body of the 
> while 
> >     statement is never
> >     > > executed, and control passes from the while statement to 
> the next 
> >     statement in the
> >     > > program. 
> >     > >   If expression is true (nonzero), the body of the 
> statement is 
> >     executed and the
> >     > > process is repeated beginning at step 1.
> >     > > 
> >     > > This is an example of the while statement: 
> >     > > 
> >     > > i = 10;while( i < 20 ){  Plot( MA( Close, i ), "MA" + 
> WriteVal( 
> >     i, 0 ), colorBlack
> >     > > + i );  i = i + 1;}The example plots 10, 11, 12, 13, 14, 
> 15, 16, 
> >     17, 18, 19 - bar
> >     > > moving averages.
> >     > > 
> >     > >   
> >     > > for Statement
> >     > > 
> >     > > The for statement lets you repeat a statement or compound 
> >     statement a specified
> >     > > number of times. The body of a for statement is executed 
> zero or 
> >     more times until
> >     > > an optional condition becomes false.  
> >     > > 
> >     > > Syntax
> >     > > 
> >     > > for ( init-expression ; cond-expression ; loop-expression ) 
> >     statement 
> >     > > 
> >     > > Execution of a for statement proceeds as follows: 
> >     > > 
> >     > >   1.. The init-expression, is evaluated. This specifies the 
> >     initialization for the
> >     > > loop. There is no restriction on the type of init-
> expression.
> >     > > 
> >     > > 
> >     > >   2.. The cond-expression,  is evaluated. This expression 
> must 
> >     have arithmetic
> >     > > type. It is evaluated before each iteration. Three results 
> are 
> >     possible: 
> >     > >     a.. If cond-expression is true (nonzero), statement is 
> >     executed; then
> >     > > loop-expression, if any, is evaluated. The loop-expression 
> is 
> >     evaluated after each
> >     > > iteration. There is no restriction on its type. Side 
> effects will 
> >     execute in
> >     > > order. The process then begins again with the evaluation of 
> cond-
> >     expression.
> >     > > 
> >     > > 
> >     > >     b.. If cond-expression is false (0), execution of the 
> for 
> >     statement terminates
> >     > > and control passes to the next statement in the program. 
> >     > > This example illustrates the for statement: 
> >     > > 
> >     > >  myema[ 0 ] = Close[ 0 ];for( i = 1; i < BarCount; i++ ){   
> myema
> >     [ i ] = 0.1 *
> >     > > Close[ i ] + 0.9 * myema[ i - 1 ];}This example iterates 
> all bars 
> >     of close array
> >     > > to calculate exponential moving averageif, else Statements
> >     > > if( expression )
> >     > > statement1 
> >     > > [else 
> >     > > statement2]
> >     > > 
> >     > > The if keyword executes statement1 if expression is true 
> >     (nonzero); if else is
> >     > > present and expression is false (zero), it executes 
> statement2. 
> >     After executing
> >     > > statement1 or statement2, control passes to the next 
> statement.
> >     > > 
> >     > > Example 1
> >     > > 
> >     > > if ( i > 0 )
> >     > >     y = x / i;
> >     > > else 
> >     > > {
> >     > >     x = i;
> >     > >     y = abs( x );
> >     > > }In this example, the statement y = x/i; is executed if i 
> is 
> >     greater than 0. If i
> >     > > is less than or equal to 0, i is assigned to x and abs( x ) 
> is 
> >     assigned to y. Note
> >     > > that the statement forming the if clause ends with a 
> semicolon.
> >     > > 
> >     > > When nesting if statements and else clauses, use braces to 
> group 
> >     the statements
> >     > > and clauses into compound statements that clarify your 
> intent. If 
> >     no braces are
> >     > > present, the compiler resolves ambiguities by associating 
> each 
> >     else with the
> >     > > closest if that lacks an else. 
> >     > > 
> >     > > Example 2
> >     > > 
> >     > > if ( i > 0 )           /* Without braces */
> >     > >     if ( j > i )
> >     > >         x = j;
> >     > >     else
> >     > >         x = i;The else clause is associated with the inner 
> if 
> >     statement in this
> >     > > example. If i is less than or equal to 0, no value is 
> assigned to 
> >     x.
> >     > > 
> >     > > Example 3
> >     > > 
> >     > > if ( i > 0 ) 
> >     > > {                      /* With braces */
> >     > >     if ( j > i )
> >     > >         x = j;
> >     > > }
> >     > > else
> >     > >     x = i;The braces surrounding the inner if statement in 
> this 
> >     example make the
> >     > > else clause part of the outer if statement. If i is less 
> than or 
> >     equal to 0, i is
> >     > > assigned to x. 
> >     > > 
> >     > > CHANGE LOG
> >     > > CHANGES FOR VERSION 4.38.0 (as compared to 4.37.0)
> >     > > 
> >     > >   a.. new setting for candlestick appearance:
> >     > >   Tools->Preferences->Charting
> >     > >   "Use distinct color for" : "None, up candle hollow" - 
> >     > >   it plots entire candle with one color but leaves interior 
> of UP 
> >     candle body
> >     > > hollow.
> >     > > 
> >     > > 
> >     > >   b.. added export chart image to PNG (portable network 
> graphics) 
> >     file
> >     > >   Edit->Image->Export to PNG file 
> >     > >   (Please don't ask me to add GIF support. GIF is patented 
> and 
> >     requires $3500
> >     > > license fee for Unisys. PNG is free, supported by all 
> browsers, 
> >     smaller and better
> >     > > )
> >     > > 
> >     > > 
> >     > >   c.. added 'send chart by e-mail' feature 
> >     > >   Edit->Image->Send by email
> >     > >   and
> >     > >   File->Send chart via e-mail 
> >     > > 
> >     > > 
> >     > >   d.. fixed positioning of arrows in image copies (Edit-
> >Image-
> >     >Copy)
> >     > > 
> >     > >   e.. fixed crash occurring when printer device context did 
> not 
> >     support bit blit
> >     > > copies. added very simple arrow line drawing for that case 
> (will 
> >     be improved in
> >     > > future releases)
> >     > > 
> >     > >   f.. fixed bug in handling Null with new constructs: if, 
> while 
> >     and for.
> >     > >   In pre-4.38 versions Null used in if, while for was 
> treated as 
> >     True, which was
> >     > > wrong
> >     > >   if( Null ) _TRACE("WRONG");
> >     > >   else _TRACE("CORRECT");
> >     > >   Now Null in if, while, for is treated as False. 
> >     > >   g.. numbers (floats) are now automatically 'upsized' to 
> arrays 
> >     on first use of
> >     > > l-value array subscript operator without causing error. 
> >     > >   Also r-value subscript can be applied to numbers and 
> return the 
> >     number itself
> >     > > without causing error, but the underlying variable remains 
> just a 
> >     single number.
> >     > > 
> >     > >   This allows to easily intialize arrays to any value 
> without 
> >     need to write loops.
> >     > > 
> >     > >   Example 1:
> >     > >   in previous versions you would need to write:
> >     > > 
> >     > >   for( i = 0; i < BarCount; i++ ) myarray[ i ] = 0 ; // 
> fill with 
> >     zeros
> >     > >   myarray[ 5 ] = 6; // write value to 5th element of the 
> array
> >     > > 
> >     > >   now you can write simply:
> >     > > 
> >     > >   myarray = 3; // initialize, at this moment myarray is 
> just a 
> >     number
> >     > >   myarray[ 5 ] = 6; // write value to 5th element of the 
> array, 
> >     the variable is
> >     > > automatically
> >     > >   // upsized to array and all elements are filled with a 
> numeric 
> >     value 
> >     > >   // that was originally placed in myarray variable
> >     > > 
> >     > >   /* myarray is holds now the array filled with values of 3 
> >     except element 5 that
> >     > > has value of 6 */
> >     > > 
> >     > >   mynumber = 5;
> >     > >   test = mynumber[ 7 ]; // previous versions would give an 
> error 
> >     message here
> >     > >   // now subscript operator for r-value numeric variable 
> >     > >   // is allowed and returns just the number 
> >     > >   // and variable is not upsized to array unless appears on 
> left 
> >     side
> >     > >   // of assignment (l-value)
> >     > >   /* mynumber variable here is still a number */
> >     > >   WriteVal( test );
> >     > > 
> >     > > CHANGES FOR VERSION 4.37.0 (as compared to 4.36.0)
> >     > > 
> >     > >   a.. printing improved, now all open indicator panes are 
> printed 
> >     and resolution
> >     > > is increased 
> >     > >   b.. Edit->Copy As Image and Edit->Copy As Metafile now 
> generate 
> >     an image
> >     > > consisting of all indicator panes (not just one) 
> >     > >   c.. fixed problem with non-resetting sort arrows in AA 
> window 
> >     > >   d.. fixed sometimes occuring crash Signal() function 
> >     > >   e.. increased size of error message text buffer to 
> prevent 
> >     overflow when
> >     > > reporting syntax errors in formulas having long unwrapped 
> lines. 
> >     > >   f.. grid lines are drawn with fine dots instead of small 
> dashes 
> >     (screen output
> >     > > only) 
> >     > >   g.. new AFL functions:
> >     > >   GetCategorySymbols( category, index ) 
> >     > >   - retrieves comma-separated list of symbols belonging to 
> given 
> >     category
> >     > > 
> >     > >   supported categories:
> >     > >   categoryMarket categoryGroup categorySector 
> categoryIndustry 
> >     categoryWatchlist
> >     > >   categoryFavorite categoryIndex 
> >     > > 
> >     > >   index = (market/group/industry/sector/watchlist number)
> >     > >   0..255 for categoryMarket, categoryGroup, categoryIndustry
> >     > >   0..63 for categorySector, categoryWatchlist
> >     > >   ignored for categoryFavorite, categoryIndex
> >     > > 
> >     > >   StrExtract( list, item )
> >     > >   - extracts given item (zero-based) from comma-separated 
> string.
> >     > > 
> >     > >   Example:
> >     > >   StrExtract( "MSFT,AAPL,AMD,INTC", 2 ) 
> >     > >   will return AMD 
> >     > > 
> >     > >   StrExtract( "MSFT,AAPL,AMD,INTC", 0 )
> >     > >   will return MSFT
> >     > > 
> >     > >   StrExtract( "MSFT,AAPL,AMD,INTC", 200 ) 
> >     > >   will return empty string ""
> >     > > 
> >     > >   + other minor fixes
> >     > > 
> >     > >   Example code for GetCategorySymbols and StrExtract:
> >     > > 
> >     > >   /* note: if given watch list contains lots of symbols 
> >     > >   ** performance may be poor 
> >     > >   */
> >     > >   function CreateAverageForWatchList( listnum )
> >     > >   {
> >     > >    // retrive comma-separated list of symbols in watch list
> >     > >    list = GetCategorySymbols( categoryWatchlist, listnum );
> >     > > 
> >     > >    Average = 0; // just in case there are no watch list 
> members
> >     > > 
> >     > >    for( i = 0; ( sym = StrExtract( list, i ) ) != ""; i++ )
> >     > >    {
> >     > >      f = Foreign( sym, "C" );
> >     > >      if( i == 0 ) Average = f;
> >     > >      else Average = Average + f;
> >     > >    }
> >     > > 
> >     > >    return Average / i; // divide by number of components
> >     > >   }
> >     > > 
> >     > >   Plot( CreateAverageForWatchList( 1 ), "Avg of WL 1", 
> >     colorGreen ); 
> >     > > 
> >     > > CHANGES FOR VERSION 4.36.0 (as compared to 4.35.0)
> >     > > 
> >     > >   a.. fixed problem with affecting 2 or more identifiers 
> >     referencing the same
> >     > > array when using l-value subscript operator []. Thanks 
> Herman for 
> >     pointing this
> >     > > out
> >     > >   b.. global and local keywords - for explicit 
> visibility/scope 
> >     declarations 
> >     > >   Allow to override default scope rules that assume that 
> >     variables defined outside
> >     > > function are global, while those identifiers that appear 
> for the 
> >     first time inside
> >     > > functions are local.
> >     > > 
> >     > >   Syntax:
> >     > > 
> >     > >   local var1 [, var2, ... ] ;
> >     > >   global var1 [, var2, ... ] ;
> >     > > 
> >     > >   (as you can see you can declare more than one variable in 
> one 
> >     line.
> >     > > 
> >     > >   Note: using these keywords outside function definition 
> has no 
> >     meaning
> >     > >   (global scope is used).
> >     > > 
> >     > >   Example:
> >     > > 
> >     > >   VariableA = 5; // implict global variable
> >     > > 
> >     > >   function Test()
> >     > >   {
> >     > >    local VariableA;  // explicit local variable with the 
> same 
> >     identifier as global
> >     > > 
> >     > >    global VariableB; // explicit global variable not 
> defined 
> >     earlier
> >     > >                      // may be used to return more than one 
> value 
> >     from the
> >     > > function
> >     > > 
> >     > >    VariableA = 99;
> >     > >    VariableB = 333;
> >     > >   } 
> >     > > 
> >     > >   VariableB = 1; // global variable
> >     > > 
> >     > >   "Before function call";
> >     > >   "VariableA = " + VariableA;
> >     > >   "VariableB = " + VariableB;
> >     > > 
> >     > >   Test(); 
> >     > > 
> >     > >   "After function call";
> >     > >   "VariableA = " + VariableA + " (not affected by function 
> >     call )";
> >     > >   "VariableB = " + VariableB + " (affected by the function 
> >     call )";
> >     > > 
> >     > >   c.. syntax highligting modified so keywords: #include, 
> if, 
> >     else, while, do,
> >     > > function, procedure, global, local, return are colorised 
> >     differently than built-in
> >     > > constants or functions. Corresponding color/style setting 
> added to
> >     > > Preferences->Editor
> >     > > 
> >     > > 
> >     > >   d.. #pragma nocache 
> >     > >   pre-processor command added to switch off #include file 
> caching 
> >     mechanism.
> >     > >   Note: between '#pragma' and 'nocache' there must be 
> exactly 
> >     SINGLE space
> >     > >   Note 2: disabling caching may slow down execution of the 
> >     formula (especially
> >     > >   in indicators)
> >     > >   Note 3: #pragma nocache must be placed before #includes
> >     > > 
> >     > >   Example: 
> >     > >   #pragma nocache
> >     > >   #include <myfile.afl>
> >     > > 
> >     > >   a.. single line comments now work with #includes (and 
> #pragma 
> >     too) so you can
> >     > > comment out include in regular way:
> >     > >   //#include <something> - will not include
> >     > > 
> >     > > 
> >     > >   b.. changed error message from "unknown identifier" 
> >     to "Variable 'name' used
> >     > > without having been initialized." which better decribes the 
> >     problem. 
> >     > > 
> >     > >   For example:
> >     > > 
> >     > >   function Test( )
> >     > >   {
> >     > >    global x;
> >     > >    x = 3;
> >     > >   }
> >     > > 
> >     > >   WriteVal( x ); // variable used without having been 
> initialized,
> >     > >   // although declared inside Test() function body
> >     > > 
> >     > > 
> >     > >   Test( ); // during function call the value of 3 is 
> assigned to 
> >     variable x
> >     > > 
> >     > >   WriteVal( x ); // and now no error is reported
> >     > > 
> >     > >   a.. implemented shortcut evaluation of logical operators 
> >     > >   The operands of logical-AND and logical-OR expressions 
> are 
> >     evaluated from left
> >     > > to right. Now if the value of the first operand is 
> sufficient to 
> >     determine the
> >     > > result of the operation, the second operand is not 
> evaluated. 
> >     This is called
> >     > > "short-circuit evaluation." 
> >     > > 
> >     > >   The left operand of the logical-AND operator is 
> completely 
> >     evaluated and all
> >     > > side effects complete before continuing. If the left 
> operand 
> >     evaluates to false
> >     > > (0), the other operand is not evaluated.
> >     > > 
> >     > >   The left operand of the logical-OR operator is completely 
> >     evaluated 
> >     > >   and all side effects complete before continuing. 
> >     > >   If the left operand evaluates to true (nonzero), the 
> other 
> >     operand is not
> >     > > evaluated. 
> >     > > 
> >     > >   (The above description applies to operands that evaluate 
> to 
> >     single boolean
> >     > > value, 
> >     > >   it does not apply to arrays. Operands that evaluate to 
> arrays 
> >     are evaluated
> >     > > always )
> >     > > 
> >     > >   Example:
> >     > >   for( i = -3; i < BarCount; i++ )
> >     > >   {
> >     > >    // using old versions of AMiBroker you would get 
> subscipt out 
> >     of range
> >     > >    // but now
> >     > >    // the second operand (C[ i ] > C[ i - 1 ]) is evaluated 
> >     > >    // ONLY if first operand ( i >= 1 ) evaluates to TRUE
> >     > > 
> >     > >     if( i >= 1 && C[ i ] > C[ i - 1 ] )
> >     > >     {
> >     > >         _TRACE("TEST " + i); 
> >     > >     }
> >     > >   }
> >     > > 
> >     > > 
> >     > > 
> >     > > CHANGES FOR VERSION 4.35.0 (as compared to 4.34.2)
> >     > > 
> >     > >   a.. do-while loop implemented:
> >     > >   Syntax:
> >     > > 
> >     > >   do statement while ( expression ) ;
> >     > > 
> >     > >   The expression in a do-while statement is evaluated after 
> the 
> >     body of the loop
> >     > > is executed. 
> >     > >   Therefore, the body of the loop is always executed at 
> least 
> >     once. 
> >     > > 
> >     > >   Example:
> >     > > 
> >     > >   i=0;
> >     > >   do
> >     > >   {
> >     > >      i++;
> >     > >   }
> >     > >   while( i < 100 );
> >     > >   WriteVal( i );
> >     > > 
> >     > > 
> >     > >   b.. it is now allowed to 'add' (or rather concatenate) 
> string 
> >     to a number /
> >     > > array. This saves quite a bit of typing. This works as in 
> >     JScript. The left-hand
> >     > > operand of '+' has to be a string. The right-hand operand 
> may be 
> >     string, number or
> >     > > array. Numbers are coerced to strings using %g sprintf 
> formatting 
> >     (prints out
> >     > > decimal point only when necessary) and then concatenated. 
> In case 
> >     of arrays
> >     > > SELECTED VALUE is coerced to string and then concatenated.
> >     > > 
> >     > >   So now instead of 
> >     > > 
> >     > >   i = 100;
> >     > >   "Value is " + WriteVal( i );
> >     > >   "Close : " + WriteVal( Close ) + ", Open : " + WriteVal( 
> Open ) 
> >     + ", High : " +
> >     > > WriteVal( High );
> >     > > 
> >     > >   you can write:
> >     > > 
> >     > >   i = 100;
> >     > >   "Value is " + i;
> >     > >   "Close : " + Close + ", Open : " + Open + ", High : " + 
> High;
> >     > > 
> >     > >   Note that
> >     > > 
> >     > >   "Test " + 100 + 1;
> >     > > 
> >     > >   will give you "Test 1001" because statements are parsed 
> from 
> >     left to right.
> >     > >   "Test " is added first to "100" giving "Test 100" and 
> then 
> >     to "1" giving
> >     > >   "Test 1001". If you want to perform numeric adding first 
> please 
> >     use braces:
> >     > > 
> >     > >   "Test " + ( 100 + 1 );
> >     > >   - this will give you "Test 101"
> >     > > 
> >     > > 
> >     > >   c.. additional tweaks in AFL engine & garbage collection, 
> >     futher speed up of
> >     > > execution of very long loops 
> >     > > 
> >     > >   d.. more error checking in AFL engine - will report using 
> >     uninitialized
> >     > > variables that were accepted silently in 4.31.x - 4.34.x 
> >     > >   e.. #include now accepts new way of specifying file names 
> to 
> >     include:
> >     > > 
> >     > >   #include <filename.afl>
> >     > > 
> >     > >   (note < > braces instead of " " ) if you specify the file 
> name 
> >     this way
> >     > > AmiBroker will look for
> >     > >   the file in "standard include path" that is definable 
> using new 
> >     prefs setting in
> >     > > Tools->Preferences->AFL
> >     > >   It makes much shorter to write includes and you can move 
> >     include folder now
> >     > > without changing all AFL codes using #includes.
> >     > > 
> >     > >   For example if you have set standard include path 
> >     to "C:\AFL\MyIncludes" and
> >     > > write in your formula:
> >     > > 
> >     > >   #include <common.afl>
> >     > > 
> >     > >   AmiBroker will look for C:\AFL\MyIncludes\common.afl file
> >     > > 
> >     > >   Also now #include reports file(s) not found in regular 
> error 
> >     message box.
> >     > > 
> >     > > 
> >     > >   f.. IIf/Min/Max are now overloaded functions (have two 
> variants 
> >     each)
> >     > >   IIF( Condition_ARRAY, True_Array, False_Array ) (old one)
> >     > >   IIF( BoolValue, TrueValue, FalseValue )
> >     > > 
> >     > >   Min( array1, array2 ) (old one)
> >     > >   Min( number1, number2 ) 
> >     > > 
> >     > >   Max( array1, array2 ) (old one)
> >     > >   Max( number1, number2 ) 
> >     > > 
> >     > >   The second one is choosen when all arguments are numbers 
> and it 
> >     is much much
> >     > > faster and returns number so LastValue() call is not 
> neccessary 
> >     anymore.
> >     > > 
> >     > >   Example:
> >     > > 
> >     > >   // much faster and does not require LastValue()
> >     > >   period = IIF( name() == "MSFT", 5, 10 );
> >     > >   result = Min( 7, 3 ); 
> >     > >   // (result is still a number not array as in previous 
> versions)
> >     > > 
> >     > > 
> >     > >   g.. added 'endless loop detection threshold' setting to 
> >     Preferences "AFL" tab.
> >     > > Recommended value 100000 or higher.
> >     > > 
> >     > >   h.. fixed parameter counting in CallFunction plugin 
> callback in 
> >     case of
> >     > > overloaded functions 
> >     > >   i.. fixed problem with premature freeing of arrays passed 
> in 
> >     default parameters
> >     > > fields (causing for example problem with color exploration 
> >     output - introduced in
> >     > > 4.32) 
> >     > > 
> >     > > CHANGES FOR VERSION 4.34.2 (as compared to 4.34.0)
> >     > > 
> >     > >   a.. improved crash recovery dialog to include AFL engine 
> state 
> >     information and
> >     > > (in some cases) the source line of the formula that causes 
> an 
> >     exception 
> >     > >   b.. added ability to catch all exceptions in indicators 
> and 
> >     commentaries
> >     > > (switchabel via Tools->Preferences->AFL, "catch system 
> >     exceptions...", ON by
> >     > > default) - allows you to continue to work even in case of 
> serious 
> >     problem 
> >     > >   c.. loop break by Shift+BREAK is now more sensitive 
> >     > >   d.. now you can control how often Shift+BREAK key is 
> checked 
> >     during formula
> >     > > execution (Tools->Preferences->AFL, "check SHIFT+Break 
> every" 
> >     (1..100, default =
> >     > > 50) (note that specifying low values may degrade 
> performance 
> >     slightly) 
> >     > >   e.. tweaked AFL memory allocator hash tables to get more 
> speed 
> >     for large looping
> >     > > formulas 
> >     > >   f.. although I never reproduced this problem I made some 
> >     changes so 'TAB' key
> >     > > should not wipe the contents of AFL editor anymore 
> >     > > CHANGES FOR VERSION 4.34.0 (as compared to 4.33.0)
> >     > > 
> >     > >   a.. user-definable functions and procedures with 
> parameters and 
> >     local variables 
> >     > > 
> >     > >   b.. 'A' is NO LONGER predefined symbol. I decided to 
> remove it 
> >     because people
> >     > > tend to use A as user-variable forgetting the fact that it 
> was 
> >     build-in array
> >     > > holding typical price (H+L+C)/3. Use 'Avg' instead.
> >     > > 
> >     > >   c.. indicator list column width increased in Indicator 
> Builder 
> >     > >   d.. DayOfYear - returns the calendar day number counting 
> from 
> >     beginning of the
> >     > > year January 1st is 1. Maximum number returned is 366 
> >     > > CHANGES FOR VERSION 4.33.0 (as compared to 4.32.2)
> >     > > 
> >     > >   a.. Database purify tool implemented (available via Tools-
> >     >Database Purify)
> >     > >   allows to detect missing/extra quotes, possible splits, 
> invalid 
> >     OHLC
> >     > > relationship
> >     > > 
> >     > >   Apply to/range settings similar to AA window. You can 
> also 
> >     right click over
> >     > > result list to add symbols to watch list and copy the list 
> to the 
> >     clipboard (and
> >     > > paste it later to any other program for futher use)
> >     > > 
> >     > > 
> >     > >   b.. further improvements to AFL garbage collector, now 
> looping 
> >     regardless of
> >     > > loop count requires the same amount of memory as just 
> single pass 
> >     of the code (no
> >     > > growing allocated memory during loops).
> >     > >   This enormously lowered memory consumption for some 
> formulas 
> >     and increased the
> >     > > speed of some loops 3..4 times.
> >     > > 
> >     > > 
> >     > >   c.. added variable period support to the following 
> functions:
> >     > >   LinRegSlope,
> >     > >   LinearReg,
> >     > >   LinRegIntercept,
> >     > >   StdErr,
> >     > >   TSF 
> >     > >   Sample code:
> >     > > 
> >     > >   Plot( Close, "Test", colorBlack );
> >     > > 
> >     > >   range = 15 * MA( ATR( 15 ), 50 ) / ATR( 15 ); 
> >     > > 
> >     > >   //Plot( range, "range", colorBlue, styleOwnScale );
> >     > >   Plot( LinearReg( Close, range ), "Test", colorRed );
> >     > > 
> >     > >   d.. fixed sometimes incorrect output of variable-period 
> version 
> >     of LLV/HHV
> >     > > 
> >     > >   e.. fixed crash occuring when bad arguments were passed 
> to the 
> >     function (bug
> >     > > introduced in 4.32.x).
> >     > > 
> >     > > CHANGES FOR VERSION 4.32.2 (as compared to 4.32.1)
> >     > > 
> >     > >   a.. second bug in experimental garbage collector fixed. 
> >     > > CHANGES FOR VERSION 4.32.1 (as compared to 4.32.0)
> >     > > 
> >     > >   a.. garbage collector was releasing memory too soon in 
> some 
> >     cases, now fixed. 
> >     > > CHANGES FOR VERSION 4.32.0 (as compared to 4.31.1)
> >     > > 
> >     > >   a.. added type check in IF/ELSE statements 
> >     > >   b.. added type check in array element assignment 
> >     > >   c.. error messages now numbered and display changed 
> slightly 
> >     > >   d.. you can break running loop by pressing Shift+BREAK 
> (Pause) 
> >     key combination 
> >     > >   e.. calling COM objects works again (was broken in 
> 4.31.x) 
> >     > >   f.. changed slightly the way TAB works in editor, if TAB 
> is 
> >     pressed any
> >     > > selection is deselected to avoid accidential deletion of 
> text 
> >     > >   g.. experimental: added 'agressive garbage collector' 
> that 
> >     extremely decreases
> >     > > the amount
> >     > >   of memory required to run AFL formula by releasing the 
> memory
> >     > >   used for temporary variables as soon as possible 
> (previously
> >     > >   temporary memory was released at the end of formula 
> execution).
> >     > >   A side-effect of new garbage collector is some speed up 
> in 
> >     formula execution. 
> >     > >   h.. new tab in preferences for AFL engine settings 
> >     > >   i.. experimental feature, NOT for beginners, may be 
> >     removed/modified in future
> >     > > releases: 
> >     > >   new _TRACE( "string" ) AFL function added
> >     > >   that allows to write debug messages from AFL code to 
> system 
> >     debug viewer.
> >     > >   (it calls internally OutputDebugString Win API function).
> >     > >   To view debug messages you have to run DebugView freeware 
> >     program 
> >     > >   from http://www.sysinternals.com/ 
> >     > > CHANGES FOR VERSION 4.31.1 (as compared to 4.31.0)
> >     > > 
> >     > >   a.. fixed bug introduced in 4.31.0 causing no text output 
> in
> >     > > commentary/interpretation 
> >     > > CHANGES FOR VERSION 4.31.0 (as compared to 4.30.0)
> >     > > 
> >     > >   a.. Workspace window uses "icon font" set in the Windows 
> >     settings instead of
> >     > > hard coded Tahoma 8 
> >     > >   b.. for better readability and ClearType(tm) 
> compatibility on 
> >     WinXP, all dialog
> >     > > windows use now 'MS Shell Dlg' face name that maps to 
> standard MS 
> >     Sans Serif on
> >     > > Win 9x/Me/NT and Tahoma on Win 2K and XP. 
> >     > >   c.. rewritten AFL parser, now formula is parsed and 
> coverted to 
> >     syntax tree and
> >     > > then interpreted. This would allow further improvements 
> including 
> >     compilation.
> >     > > This allowed also to add loops/if-else statements. 
> >     > >   d.. implemented IF/ELSE statement, WHILE and FOR loops:
> >     > >   The same basic 'for' loop in AFL is 2..3 times faster 
> than in 
> >     JScript
> >     > >   Syntax follows C++/JScript style: 
> >     > >   while( conditional_expression ) statement;
> >     > > 
> >     > >   for( initializer_part; conditional_expression; 
> iterator_part ) 
> >     statement;
> >     > > 
> >     > >   if( conditional_expression ) statement;
> >     > > 
> >     > >   if( conditional_expression ) 
> >     > >   statement;
> >     > >   else
> >     > >   statement;
> >     > > 
> >     > >   e.. implemented compound statements: these are blocks of 
> >     statements enclosed
> >     > >   in opening and closing curly brace 
> >     > > 
> >     > >   {
> >     > >   statement1;
> >     > >   statement2;
> >     > >   ...
> >     > >   statementN;
> >     > >   }
> >     > > 
> >     > >   compound statement can appear anywhere when simple 
> statement 
> >     can.
> >     > > 
> >     > >   For example:
> >     > > 
> >     > >   i = 10;
> >     > >   while( i < 20 )
> >     > >   {
> >     > >   Plot( MA( Close, i ), "MA" + WriteVal( i, 0 ), colorBlack 
> + i );
> >     > >   i = i + 1;
> >     > >   }
> >     > > 
> >     > >   f.. implemented C-style postfix and prefix 
> increment/decrement 
> >     operators
> >     > > 
> >     > >   i = 10;
> >     > >   WriteIf( i++ );
> >     > >   WriteIf( ++i );
> >     > >   WriteIf( i );
> >     > > 
> >     > >   g.. implemented array element access (subscript) operator 
> []:
> >     > > 
> >     > >   WriteVal( Close[ 0 ] ); // prints the first bar of close 
> array
> >     > > 
> >     > >   /* a sample low-level implementation of exponential 
> moving 
> >     average in AFL */
> >     > > 
> >     > >   myema[ 0 ] = Close[ 0 ];
> >     > > 
> >     > >   for( i = 1; i < BarCount; i++ )
> >     > >   {
> >     > >   myema[ i ] = 0.1 * Close[ i ] + 0.9 * myema[ i - 1 ];
> >     > >   }
> >     > > 
> >     > > 
> >     > > 
> >     > >   h.. added built-in constant 'BarCount' that returns 
> number of 
> >     bars available in
> >     > > arrays (the number of elements of array)
> >     > >   When QuickAFL is turned on it may be less than true 
> number of 
> >     bars because
> >     > > QuickAFL feature attempts to use only visible bars (and few 
> >     before). You can
> >     > > control how many bars the formula requires using 
> SetBarsRequired
> >     () function
> >     > > 
> >     > >   i.. implemented infinite-loop protection. Nice if you 
> forgot to 
> >     increment
> >     > > counter variable in 'for' loop :-)
> >     > > 
> >     > >   j.. tab key now works without need to press ALT/CTRL in 
> AFL 
> >     editors
> >     > > 
> >     > >   k.. added C-like synonyms for logical ADD/OR/NOT: &&, 
> ||, ! 
> >     > > 
> >     > > 
> >     > >   /* a sample low-level implementation of Profit-target 
> stop in 
> >     AFL: */
> >     > > 
> >     > >   Buy = Cross( MACD(), Signal() );
> >     > > 
> >     > >   priceatbuy=0;
> >     > > 
> >     > >   for( i = 0; i < BarCount; i++ )
> >     > >   {
> >     > >        if( priceatbuy == 0 && Buy[ i ] ) 
> >     > >        priceatbuy = BuyPrice[ i ];
> >     > > 
> >     > >        if( priceatbuy > 0 && SellPrice[ i ] > 1.1 * 
> priceatbuy )
> >     > >        {
> >     > >          Sell[ i ] = 1;
> >     > >          SellPrice[ i ] = 1.1 * priceatbuy;
> >     > >          priceatbuy = 0;
> >     > >        }
> >     > >        else
> >     > >          Sell[ i ] = 0;
> >     > >   }
> >     > > 
> >     > >   /* sample EMA rainbow */
> >     > > 
> >     > >   Plot( Close, "Price", colorBlack, styleCandle );
> >     > >   for( Range = 15; Range < 100; Range++ )
> >     > >      Plot( EMA( Close, Range ), "MA"+WriteVal(Range,0), 
> colorRose 
> >     + Range % 8,
> >     > > styleNoLabel );
> >     > > 
> >     > > 
> >     > > HOW TO REPORT BUGS
> >     > > 
> >     > > If you experience any problem with this beta version please 
> send 
> >     detailed
> >     > > description of the problem (especially the steps needed to 
> >     reproduce it) to
> >     > > bugs@xxxx 
> >     > > 
> >     > 
> >     > 
> >     > __________________________________
> >     > Do you Yahoo!?
> >     > The New Yahoo! Search - Faster. Easier. Bingo.
> >     > http://search.yahoo.com
> > 
> > 
> > 
> >     Send BUG REPORTS to bugs@xxxx
> >     Send SUGGESTIONS to suggest@xxxx
> >     -----------------------------------------
> >     Post AmiQuote-related messages ONLY to: 
> amiquote@xxxxxxxxxxxxxxx 
> >     (Web page: http://groups.yahoo.com/group/amiquote/messages/)
> >     --------------------------------------------
> >     Check group FAQ at:
> >     http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
> > 
> >     Your use of Yahoo! Groups is subject to
> >     http://docs.yahoo.com/info/terms/ 
> > 
> > 
> > 
> > 
> > 
> >     Send BUG REPORTS to bugs@xxxx
> >     Send SUGGESTIONS to suggest@xxxx
> >     -----------------------------------------
> >     Post AmiQuote-related messages ONLY to: 
> amiquote@xxxxxxxxxxxxxxx 
> >     (Web page: http://groups.yahoo.com/group/amiquote/messages/)
> >     --------------------------------------------
> >     Check group FAQ at: 
> http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
> > 
> >     Your use of Yahoo! Groups is subject to the Yahoo! Terms of 
> Service. 
> > 
> > 
> > 
> > --------------------------------------------------------------------
> ----------
> >   Do you Yahoo!?
> >   The New Yahoo! Search - Faster. Easier. Bingo. 
> >         Yahoo! Groups Sponsor 
> >               ADVERTISEMENT
> >              
> >        
> >        
> > 
> >   Send BUG REPORTS to bugs@xxxx
> >   Send SUGGESTIONS to suggest@xxxx
> >   -----------------------------------------
> >   Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx 
> >   (Web page: http://groups.yahoo.com/group/amiquote/messages/)
> >   --------------------------------------------
> >   Check group FAQ at: 
> http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
> > 
> >   Your use of Yahoo! Groups is subject to the Yahoo! Terms of 
> Service. 
> > 
> > 
> > 
> > --------------------------------------------------------------------
> ----------
> 
> 
> 
> Send BUG REPORTS to bugs@xxxxxxxxxxxxx
> Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
> -----------------------------------------
> Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx 
> (Web page: http://groups.yahoo.com/group/amiquote/messages/)
> --------------------------------------------
> Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html 
> 
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/ 
> 
> 
> 

------------------------ Yahoo! Groups Sponsor ---------------------~-->
Get A Free Psychic Reading!
Your Online Answer To Life's Important Questions.
http://us.click.yahoo.com/aM1XQD/od7FAA/uetFAA/GHeqlB/TM
---------------------------------------------------------------------~->

Send BUG REPORTS to bugs@xxxxxxxxxxxxx
Send SUGGESTIONS to suggest@xxxxxxxxxxxxx
-----------------------------------------
Post AmiQuote-related messages ONLY to: amiquote@xxxxxxxxxxxxxxx 
(Web page: http://groups.yahoo.com/group/amiquote/messages/)
--------------------------------------------
Check group FAQ at: http://groups.yahoo.com/group/amibroker/files/groupfaq.html 

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/