home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / vol285 / gennames.prg < prev    next >
Encoding:
Text File  |  1986-12-22  |  2.3 KB  |  85 lines

  1. **    Last revision: June 30, 1986 at 12:59
  2.  
  3. ** I found this little critter on a BBS without an authors name.
  4. ** Revised it to my own personal tastes and Clippered it.
  5. ** H.M. Van Tassell
  6.  
  7. * Generate memory variable names from data file
  8. * Save the output in a text file with the same name as the database
  9. * file and a .txt extension
  10.  
  11. set talk off
  12. clear all
  13. clear
  14. ?
  15. ? "Ready to GENerate memory variable NAMES from a data (dbf) file."
  16. ?
  17. accept 'Enter [drive:]<data file name > with no extension -->' to filename
  18. ?
  19. filename = upper(trim(filename))
  20. datafile = filename + '.DBF'
  21. if file(datafile)
  22.   use &datafile
  23. else
  24.   ? datafile + "does not exist where I'm looking for it."
  25.   set talk on
  26.   return
  27. endif
  28. wait "You want listing in alphabetical order by data types and names (Y/N) ?" to alpha_order
  29. ?
  30. ? "One moment please..."
  31. copy to temp structure extended
  32. use temp
  33. replace all field_name with lower(field_name)
  34. IF upper(left(alpha_order,1)) = "Y"
  35.   index on field_type + field_name to temp
  36. ENDIF
  37. clear
  38. outfile = filename + '.NAM'
  39. set alternate to &outfile
  40. set alternate on
  41. ? "Generated "+DtoC(DATE())+" @ "+TIME()+" from data file: " + datafile
  42. ?
  43. store '00000000000000000000' to zeros
  44. goto top
  45. do while .not. eof()
  46.   do case
  47.   case field_type = 'C'
  48.     ? 'm_'+substr(field_name,1,8) + ' = SPACE(' + str(field_len,3) + ')'
  49.   case field_type = 'N' .and. field_dec = 0
  50.     ? 'm_'+ substr(field_name,1,8) + ' = ' + substr(zeros,1,field_len-;
  51.     field_dec)
  52.   case field_type = 'N' .and. field_dec >0
  53.     ? 'm_' + substr(field_name,1,8) + ' = ' + substr(zeros,1,field_len-;
  54.     field_dec-1) + '.' +substr(zeros,1,field_dec)
  55.   case field_type = 'L'
  56.     ? 'm_' + substr(field_name,1,8) + ' = .F.'
  57.   case field_type = 'D'
  58.     ? 'm_' + substr(field_name,1,8) + ' = CtoD("  /  /  ")'
  59.   endcase
  60.   skip
  61. enddo
  62. ?
  63. go top
  64. do while .not. eof()
  65.   ? 'm_' + substr(field_name,1,8) + ' = ' + upper(substr(field_name,1,1)) +;
  66.    substr(field_name,2,9)
  67.   skip
  68. enddo
  69.  
  70. ?
  71. go top
  72. do while .not. eof()
  73.   ? 'REPLACE ' + upper(substr(field_name,1,1)) + substr(field_name,2,9)+;
  74.   ' WITH m_' + substr(field_name,1,8)
  75.   skip
  76. enddo
  77. set alternate off
  78. set alternate to
  79. close databases
  80. ?
  81. ? "Output will be in file: " + outfile
  82. ?
  83. set talk on
  84. return
  85.