Files
harbour-core/harbour/website/samples/foreach.prg.html
Viktor Szakats 300160d8b0 2012-09-22 12:05 UTC+0200 Viktor Szakats (harbour syenar.net)
+ website
    + Added Harbour website (except art, docs and stat subdirs)
    ; TODO: configure automatic mechanism to extract site from
            here and regularly updload to sf.net web area
    ; TODO: Clean HTML code, remove unused picture/files, avoid JS
            Any takers?
    ; NOTE: Please make modifications to website code only in
            SVN, then upload the content to web server manually.
            IOW never update on web server directly.
2012-09-22 10:17:39 +00:00

164 lines
16 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML xmlns="http://www.w3.org/1999/xhtml"><HEAD><TITLE>foreach.prg</TITLE>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.6000.16386" name=GENERATOR>
<STYLE type=text/css>
<!--
body { color: #000000; background-color: #FFFFFF; }
.any1-activedot { color: #800080; }
.any1-comment { color: #008080; }
.any1-constant { color: #800080; }
.any1-escapeampersand { color: #00FF00; font-weight: bold; }
.any1-function { color: #808000; }
.any1-identifier { color: #000000; }
.any1-number { color: #FF0000; }
.any1-preprocessor { }
.any1-reservedword { color: #800000; }
.any1-space { }
.any1-string { color: #0000FF; }
.any1-symbol { }
.any1-variable { color: #808000; }
-->
</STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<PRE><CODE><SPAN style="FONT: 10pt Courier New"><SPAN class=any1-reservedword>PROCEDURE</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>MAIN</SPAN><SPAN class=any1-symbol>()
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> A:={ </SPAN><SPAN class=any1-string>"one "</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-string>"two "</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-string>"three"</SPAN><SPAN class=any1-space> }
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> AA:={ </SPAN><SPAN class=any1-string>"AA-one "</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-string>"AA-two "</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-string>"AA-three"</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-string>"AA-four "</SPAN><SPAN class=any1-space> }
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> c:=</SPAN><SPAN class=any1-string>"abcdefghij"
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> enum:=</SPAN><SPAN class=any1-string>"b"
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> bb, cc
</SPAN><SPAN class=any1-reservedword>LOCAL</SPAN><SPAN class=any1-space> i
</SPAN><SPAN class=any1-comment>/*
test(@a,b)
test(a,@b)
test(@a,@b)
*/
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-string>"========================================================"
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-string>"before loop: ENUM="</SPAN><SPAN class=any1-symbol>,ENUM
? </SPAN><SPAN class=any1-string>'before loop: a[1]='</SPAN><SPAN class=any1-symbol>,a[</SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-symbol>], </SPAN><SPAN class=any1-string>'a[2]='</SPAN><SPAN class=any1-symbol>,a[</SPAN><SPAN class=any1-number>2</SPAN><SPAN class=any1-symbol>], </SPAN><SPAN class=any1-string>'a[3]='</SPAN><SPAN class=any1-symbol>,a[</SPAN><SPAN class=any1-number>3</SPAN><SPAN class=any1-symbol>]
</SPAN><SPAN class=any1-reservedword>FOR</SPAN><SPAN class=any1-space> EACH enum IN A
? </SPAN><SPAN class=any1-string>"start: ENUM="</SPAN><SPAN class=any1-symbol>, ENUM
</SPAN><SPAN class=any1-reservedword>IF</SPAN><SPAN class=any1-space> ENUM = </SPAN><SPAN class=any1-string>'two'
</SPAN><SPAN class=any1-space> ENUM := </SPAN><SPAN class=any1-function>UPPER</SPAN><SPAN class=any1-symbol>( ENUM )
</SPAN><SPAN class=any1-reservedword>ENDIF
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-string>"end: ENUM="</SPAN><SPAN class=any1-symbol>, ENUM, </SPAN><SPAN class=any1-string>"| index:"</SPAN><SPAN class=any1-symbol>, ENUM:__enumIndex, </SPAN><SPAN class=any1-string>"| value:"</SPAN><SPAN class=any1-symbol>, ENUM:__enumValue, </SPAN><SPAN class=any1-string>"| base: "</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>VALTYPE</SPAN><SPAN class=any1-symbol>(ENUM:__enumBase)
</SPAN><SPAN class=any1-reservedword>NEXT
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-string>"after loop ENUM="</SPAN><SPAN class=any1-symbol>, ENUM
? </SPAN><SPAN class=any1-string>'after loop: a[1]='</SPAN><SPAN class=any1-symbol>,a[</SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-symbol>], </SPAN><SPAN class=any1-string>'a[2]='</SPAN><SPAN class=any1-symbol>,a[</SPAN><SPAN class=any1-number>2</SPAN><SPAN class=any1-symbol>], </SPAN><SPAN class=any1-string>'a[3]='</SPAN><SPAN class=any1-symbol>,a[</SPAN><SPAN class=any1-number>3</SPAN><SPAN class=any1-symbol>]
? </SPAN><SPAN class=any1-string>"-----------------"
</SPAN><SPAN class=any1-space> ?
</SPAN><SPAN class=any1-function>inkey</SPAN><SPAN class=any1-symbol>(</SPAN><SPAN class=any1-number>0</SPAN><SPAN class=any1-symbol>)
? </SPAN><SPAN class=any1-string>"========================================================"
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-string>"Testing passing by reference"
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-string>"before loop: ENUM="</SPAN><SPAN class=any1-symbol>,ENUM
? </SPAN><SPAN class=any1-string>'after loop: a[1]='</SPAN><SPAN class=any1-symbol>,a[</SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-symbol>], </SPAN><SPAN class=any1-string>'a[2]='</SPAN><SPAN class=any1-symbol>,a[</SPAN><SPAN class=any1-number>2</SPAN><SPAN class=any1-symbol>], </SPAN><SPAN class=any1-string>'a[3]='</SPAN><SPAN class=any1-symbol>,a[</SPAN><SPAN class=any1-number>3</SPAN><SPAN class=any1-symbol>]
</SPAN><SPAN class=any1-reservedword>FOR</SPAN><SPAN class=any1-space> EACH ENUM IN A
</SPAN><SPAN class=any1-reservedword>IF</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-function>UPPER</SPAN><SPAN class=any1-symbol>(ENUM) = </SPAN><SPAN class=any1-string>'TWO'
</SPAN><SPAN class=any1-space> ENUM := </SPAN><SPAN class=any1-function>UPPER</SPAN><SPAN class=any1-symbol>( ENUM )
? </SPAN><SPAN class=any1-string>"before passing by @ | ENUM="</SPAN><SPAN class=any1-symbol>, ENUM, </SPAN><SPAN class=any1-string>"| index:"</SPAN><SPAN class=any1-symbol>, ENUM:__enumIndex, </SPAN><SPAN class=any1-string>"| value:"</SPAN><SPAN class=any1-symbol>, ENUM:__enumValue, </SPAN><SPAN class=any1-string>"| base: "</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>VALTYPE</SPAN><SPAN class=any1-symbol>(ENUM:__enumBase)
</SPAN><SPAN class=any1-variable>testBYREF</SPAN><SPAN class=any1-symbol>( @ENUM )
? </SPAN><SPAN class=any1-string>" after passing by @ | ENUM="</SPAN><SPAN class=any1-symbol>, ENUM, </SPAN><SPAN class=any1-string>"| index:"</SPAN><SPAN class=any1-symbol>, ENUM:__enumIndex, </SPAN><SPAN class=any1-string>"| value:"</SPAN><SPAN class=any1-symbol>, ENUM:__enumValue, </SPAN><SPAN class=any1-string>"| base: "</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>VALTYPE</SPAN><SPAN class=any1-symbol>(ENUM:__enumBase)
</SPAN><SPAN class=any1-reservedword>ENDIF
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>NEXT
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-string>"after loop ENUM="</SPAN><SPAN class=any1-symbol>, ENUM
? </SPAN><SPAN class=any1-string>'after loop: a[1]='</SPAN><SPAN class=any1-symbol>,a[</SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-symbol>], </SPAN><SPAN class=any1-string>'a[2]='</SPAN><SPAN class=any1-symbol>,a[</SPAN><SPAN class=any1-number>2</SPAN><SPAN class=any1-symbol>], </SPAN><SPAN class=any1-string>'a[3]='</SPAN><SPAN class=any1-symbol>,a[</SPAN><SPAN class=any1-number>3</SPAN><SPAN class=any1-symbol>]
</SPAN><SPAN class=any1-function>inkey</SPAN><SPAN class=any1-symbol>(</SPAN><SPAN class=any1-number>0</SPAN><SPAN class=any1-symbol>)
? </SPAN><SPAN class=any1-string>"========================================================"
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-string>"Testing BREAK"
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-string>"before loop: ENUM="</SPAN><SPAN class=any1-symbol>,ENUM
? </SPAN><SPAN class=any1-string>'after loop: a[1]='</SPAN><SPAN class=any1-symbol>,a[</SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-symbol>], </SPAN><SPAN class=any1-string>'a[2]='</SPAN><SPAN class=any1-symbol>,a[</SPAN><SPAN class=any1-number>2</SPAN><SPAN class=any1-symbol>], </SPAN><SPAN class=any1-string>'a[3]='</SPAN><SPAN class=any1-symbol>,a[</SPAN><SPAN class=any1-number>3</SPAN><SPAN class=any1-symbol>]
</SPAN><SPAN class=any1-reservedword>BEGIN</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>SEQUENCE
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>FOR</SPAN><SPAN class=any1-space> EACH enum IN A </SPAN><SPAN class=any1-function>DESCEND
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-string>"loop: ENUM="</SPAN><SPAN class=any1-symbol>, ENUM, </SPAN><SPAN class=any1-string>"| index:"</SPAN><SPAN class=any1-symbol>, ENUM:__enumIndex, </SPAN><SPAN class=any1-string>"| value:"</SPAN><SPAN class=any1-symbol>, ENUM:__enumValue, </SPAN><SPAN class=any1-string>"| base: "</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>VALTYPE</SPAN><SPAN class=any1-symbol>(ENUM:__enumBase)
</SPAN><SPAN class=any1-variable>TESTbreak</SPAN><SPAN class=any1-symbol>( ENUM )
</SPAN><SPAN class=any1-reservedword>NEXT
</SPAN><SPAN class=any1-space>
RECOVER USING i
? </SPAN><SPAN class=any1-string>"after loop ENUM="</SPAN><SPAN class=any1-symbol>, ENUM
? </SPAN><SPAN class=any1-string>'after loop: a[1]='</SPAN><SPAN class=any1-symbol>,a[</SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-symbol>], </SPAN><SPAN class=any1-string>'a[2]='</SPAN><SPAN class=any1-symbol>,a[</SPAN><SPAN class=any1-number>2</SPAN><SPAN class=any1-symbol>], </SPAN><SPAN class=any1-string>'a[3]='</SPAN><SPAN class=any1-symbol>,a[</SPAN><SPAN class=any1-number>3</SPAN><SPAN class=any1-symbol>]
? </SPAN><SPAN class=any1-string>"recover variable i="</SPAN><SPAN class=any1-symbol>, i
</SPAN><SPAN class=any1-reservedword>END</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>SEQUENCE
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-function>inkey</SPAN><SPAN class=any1-symbol>(</SPAN><SPAN class=any1-number>0</SPAN><SPAN class=any1-symbol>)
? </SPAN><SPAN class=any1-string>"========================================================"
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-string>"before loop: ENUM="</SPAN><SPAN class=any1-symbol>,ENUM
? </SPAN><SPAN class=any1-string>'before loop: c='</SPAN><SPAN class=any1-symbol>,c
</SPAN><SPAN class=any1-reservedword>BEGIN</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>SEQUENCE
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>FOR</SPAN><SPAN class=any1-space> EACH enum IN c
? </SPAN><SPAN class=any1-string>"start: ENUM="</SPAN><SPAN class=any1-symbol>, ENUM
</SPAN><SPAN class=any1-reservedword>IF</SPAN><SPAN class=any1-space> enum = </SPAN><SPAN class=any1-string>'d'
</SPAN><SPAN class=any1-space> enum := </SPAN><SPAN class=any1-function>UPPER</SPAN><SPAN class=any1-symbol>( enum )
</SPAN><SPAN class=any1-reservedword>ENDIF
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>Testbreak</SPAN><SPAN class=any1-symbol>( enum )
? </SPAN><SPAN class=any1-string>"end: ENUM="</SPAN><SPAN class=any1-symbol>, ENUM, </SPAN><SPAN class=any1-string>"| index:"</SPAN><SPAN class=any1-symbol>, ENUM:__enumIndex, </SPAN><SPAN class=any1-string>"| value:"</SPAN><SPAN class=any1-symbol>, ENUM:__enumValue, </SPAN><SPAN class=any1-string>"| base: "</SPAN><SPAN class=any1-symbol>, </SPAN><SPAN class=any1-function>VALTYPE</SPAN><SPAN class=any1-symbol>(ENUM:__enumBase)
</SPAN><SPAN class=any1-reservedword>NEXT
</SPAN><SPAN class=any1-space> RECOVER USING i
? </SPAN><SPAN class=any1-string>"after loop ENUM="</SPAN><SPAN class=any1-symbol>, ENUM
? </SPAN><SPAN class=any1-string>'after loop: c='</SPAN><SPAN class=any1-symbol>, c
? </SPAN><SPAN class=any1-string>"recover variable i="</SPAN><SPAN class=any1-symbol>, i
</SPAN><SPAN class=any1-reservedword>END</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>SEQUENCE
</SPAN><SPAN class=any1-space>
? </SPAN><SPAN class=any1-string>"========================================================"
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>FOR</SPAN><SPAN class=any1-space> EACH enum,bb,cc IN A,AA,c
? enum, enum:__enumIndex, enum:__enumValue
? bb, bb:__enumIndex, bb:__enumValue
? cc, cc:__enumIndex, cc:__enumValue
</SPAN><SPAN class=any1-reservedword>NEXT
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-function>inkey</SPAN><SPAN class=any1-symbol>(</SPAN><SPAN class=any1-number>0</SPAN><SPAN class=any1-symbol>)
? </SPAN><SPAN class=any1-string>"========================================================"
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>FOR</SPAN><SPAN class=any1-space> EACH enum,bb,cc IN A,AA,c </SPAN><SPAN class=any1-function>DESCEND
</SPAN><SPAN class=any1-space> ? enum, enum:__enumIndex, enum:__enumValue
? bb, bb:__enumIndex, bb:__enumValue
? cc, cc:__enumIndex, cc:__enumValue
</SPAN><SPAN class=any1-reservedword>NEXT
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>FOR</SPAN><SPAN class=any1-space> EACH enum IN a
</SPAN><SPAN class=any1-reservedword>BEGIN</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>SEQUENCE
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>IF</SPAN><SPAN class=any1-space> enum = </SPAN><SPAN class=any1-string>'2'
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-function>BREAK
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>ENDIF
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>END</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>SEQUENCE
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>NEXT
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>FOR</SPAN><SPAN class=any1-space> EACH enum IN a
</SPAN><SPAN class=any1-reservedword>BEGIN</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>SEQUENCE
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>IF</SPAN><SPAN class=any1-space> enum = </SPAN><SPAN class=any1-string>'2'
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-string>"Breaking... enum="</SPAN><SPAN class=any1-symbol>, enum
</SPAN><SPAN class=any1-function>BREAK</SPAN><SPAN class=any1-space> enum
</SPAN><SPAN class=any1-reservedword>ENDIF
</SPAN><SPAN class=any1-space> RECOVER USING enum
? </SPAN><SPAN class=any1-string>"after recovery: enum="</SPAN><SPAN class=any1-symbol>, enum
</SPAN><SPAN class=any1-reservedword>END</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>SEQUENCE
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-reservedword>NEXT
</SPAN><SPAN class=any1-space>
</SPAN><SPAN class=any1-reservedword>RETURN
PROCEDURE</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>TESTbreak</SPAN><SPAN class=any1-symbol>( v )
</SPAN><SPAN class=any1-reservedword>IF</SPAN><SPAN class=any1-space> v = </SPAN><SPAN class=any1-string>'2'</SPAN><SPAN class=any1-space> .or. v = </SPAN><SPAN class=any1-string>'d'
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-string>"issuing break"
</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-function>BREAK</SPAN><SPAN class=any1-symbol>( v )
</SPAN><SPAN class=any1-reservedword>ENDIF
</SPAN><SPAN class=any1-space>
</SPAN><SPAN class=any1-reservedword>RETURN
PROCEDURE</SPAN><SPAN class=any1-space> </SPAN><SPAN class=any1-variable>TESTBYREF</SPAN><SPAN class=any1-symbol>( enum )
? </SPAN><SPAN class=any1-string>"start of testBYREF ENUM="</SPAN><SPAN class=any1-symbol>, ENUM
</SPAN><SPAN class=any1-reservedword>FOR</SPAN><SPAN class=any1-space> EACH ENUM IN {</SPAN><SPAN class=any1-number>1</SPAN><SPAN class=any1-symbol>,</SPAN><SPAN class=any1-number>2</SPAN><SPAN class=any1-symbol>,</SPAN><SPAN class=any1-number>3</SPAN><SPAN class=any1-symbol>}
? </SPAN><SPAN class=any1-string>" -testBYREF="</SPAN><SPAN class=any1-symbol>, ENUM
</SPAN><SPAN class=any1-reservedword>NEXT
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-string>"end of loop: ENUM="</SPAN><SPAN class=any1-symbol>, ENUM
ENUM := </SPAN><SPAN class=any1-string>"22222"
</SPAN><SPAN class=any1-space> ? </SPAN><SPAN class=any1-string>"end of testBYREF ENUM="</SPAN><SPAN class=any1-symbol>, ENUM
</SPAN><SPAN class=any1-reservedword>RETURN
</SPAN></SPAN>
</CODE></PRE></BODY></HTML>