home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 5 / 05.iso / a / a013 / 1.ddi / SOURCE.EXE / F_ARVIEW.PRG < prev    next >
Encoding:
Text File  |  1991-01-25  |  2.1 KB  |  82 lines

  1. *****************************************************************
  2. FUNCTION ARVIEW
  3. *****************************************************************
  4.  
  5. * Development utility for viewing contents of an array
  6.  
  7. * Copyright(c) 1991 -- James Occhiogrosso
  8.  
  9. # include "box.ch"
  10.  
  11. LOCAL old_screen := SCRNSAVE(1, 1, MAXROW()-1, MAXCOL()-1)
  12. PRIVATE new_array := {}, counter := 0
  13. PARAMETERS arr_name
  14.  
  15. IF TYPE('arr_name') = 'A'
  16.  
  17.     * Display box and heading area
  18.     @ 1, 1, MAXROW()-1, MAXCOL()-1 BOX B_SINGLE + SPACE(1)
  19.     @ 2, 3  SAY ' Element/Type '
  20.     @ 2, 38 SAY ' Contents '
  21.     @ 3, 4  SAY REPLICATE('─', MAXCOL() - 7)
  22.  
  23.     * Declare a new array and traverse it
  24.     ASIZE(new_array, LEN(arr_name))
  25.     AEVAL(arr_name, { | element | LOADNEW() } )
  26.  
  27. ENDIF
  28.  
  29. * Use ACHOICE to view the new array
  30. ACHOICE(4, 4, MAXROW()-2, MAXCOL()-4, new_array)
  31.  
  32. * Restore screen and return
  33. SCRNREST(old_screen)
  34. RETURN NIL
  35.  
  36.  
  37. *****************************************************************
  38. STATIC FUNCTION LOADNEW
  39. *****************************************************************
  40.  
  41. * Load new array with character strings formatted for viewing
  42.  
  43. LOCAL elem_type, elem_num
  44.  
  45. counter++
  46. elem_num  := PADL(counter,4) + SPACE(5)
  47. elem_type := TYPE('arr_name[counter]')
  48.  
  49.  
  50. IF elem_type == 'A'
  51.     new_array[counter] = elem_num + 'A     ' + ;
  52.        'Array of length = ' + LTRIM(STR(LEN(arr_name[counter])))
  53.  
  54. ELSEIF elem_type == 'B'
  55.     new_array[counter] = elem_num + 'B     ' + ;
  56.        'Code block'
  57.  
  58. ELSEIF elem_type == 'C'
  59.     new_array[counter] = elem_num + 'C     ' + ;
  60.        SUBSTR(arr_name[counter], 1, MAXCOL()-4)
  61.  
  62. ELSEIF elem_type == 'D'
  63.     new_array[counter] = elem_num + 'D     ' + ;
  64.        DTOC(arr_name[counter])
  65.  
  66. ELSEIF elem_type == 'L'
  67.     new_array[counter] = elem_num + 'L     ' + ;
  68.        IF(arr_name[counter] = .T., '.T.', '.F.')
  69.  
  70. ELSEIF elem_type == 'N'
  71.     new_array[counter] = elem_num + 'N     ' + ;
  72.        LTRIM(STR(arr_name[counter]))
  73.  
  74. ELSEIF elem_type == 'U'
  75.     new_array[counter] = elem_num + 'U     ' + ;
  76.        'Undefined'
  77.  
  78. ENDIF
  79.  
  80. RETURN NIL
  81.  
  82.