home *** CD-ROM | disk | FTP | other *** search
- *****************************************************************
- FUNCTION ARVIEW
- *****************************************************************
-
- * Development utility for viewing contents of an array
-
- * Copyright(c) 1991 -- James Occhiogrosso
-
- # include "box.ch"
-
- LOCAL old_screen := SCRNSAVE(1, 1, MAXROW()-1, MAXCOL()-1)
- PRIVATE new_array := {}, counter := 0
- PARAMETERS arr_name
-
- IF TYPE('arr_name') = 'A'
-
- * Display box and heading area
- @ 1, 1, MAXROW()-1, MAXCOL()-1 BOX B_SINGLE + SPACE(1)
- @ 2, 3 SAY ' Element/Type '
- @ 2, 38 SAY ' Contents '
- @ 3, 4 SAY REPLICATE('─', MAXCOL() - 7)
-
- * Declare a new array and traverse it
- ASIZE(new_array, LEN(arr_name))
- AEVAL(arr_name, { | element | LOADNEW() } )
-
- ENDIF
-
- * Use ACHOICE to view the new array
- ACHOICE(4, 4, MAXROW()-2, MAXCOL()-4, new_array)
-
- * Restore screen and return
- SCRNREST(old_screen)
- RETURN NIL
-
-
- *****************************************************************
- STATIC FUNCTION LOADNEW
- *****************************************************************
-
- * Load new array with character strings formatted for viewing
-
- LOCAL elem_type, elem_num
-
- counter++
- elem_num := PADL(counter,4) + SPACE(5)
- elem_type := TYPE('arr_name[counter]')
-
-
- IF elem_type == 'A'
- new_array[counter] = elem_num + 'A ' + ;
- 'Array of length = ' + LTRIM(STR(LEN(arr_name[counter])))
-
- ELSEIF elem_type == 'B'
- new_array[counter] = elem_num + 'B ' + ;
- 'Code block'
-
- ELSEIF elem_type == 'C'
- new_array[counter] = elem_num + 'C ' + ;
- SUBSTR(arr_name[counter], 1, MAXCOL()-4)
-
- ELSEIF elem_type == 'D'
- new_array[counter] = elem_num + 'D ' + ;
- DTOC(arr_name[counter])
-
- ELSEIF elem_type == 'L'
- new_array[counter] = elem_num + 'L ' + ;
- IF(arr_name[counter] = .T., '.T.', '.F.')
-
- ELSEIF elem_type == 'N'
- new_array[counter] = elem_num + 'N ' + ;
- LTRIM(STR(arr_name[counter]))
-
- ELSEIF elem_type == 'U'
- new_array[counter] = elem_num + 'U ' + ;
- 'Undefined'
-
- ENDIF
-
- RETURN NIL
-
-