home *** CD-ROM | disk | FTP | other *** search
/ Software Du Jour / SoftwareDuJour.iso / BUSINESS / DBASE / DBAPG.ARC / NAMEGEN3.PRG < prev    next >
Text File  |  1984-12-17  |  3KB  |  95 lines

  1. * Program..: NAMEGEN3.PRG
  2. * Author...: Tom Rettig
  3. * Date.....: August 30, 1984
  4. * Notice...: Copyright 1984 by Tom Rettig & Associates.  All rights reserved.
  5. * Version..: dBASE III, version 1.00
  6. * Notes....: For generating memory variable names from data file
  7. *            field names, and writing the memory variable
  8. *            initialization routines and the STORE and REPLACE code.
  9. *
  10. *            Saves the output in a text file with the same name as
  11. *            the database file and a .TXT extension.
  12. *
  13. * Establish working environment, and prompt for data file name...
  14. SET TALK OFF
  15. CLEAR ALL
  16. ACCEPT "Enter [drive:]<data file name> with no extension -->" TO datafile
  17. STORE UPPER(TRIM(datafile)) + ".DBF" TO datafile
  18. *
  19. * Open the file if it exists, otherwise exit...
  20. IF FILE(datafile)
  21.    USE &datafile
  22. ELSE
  23.    ? datafile + " does not exist where I'm looking for it."
  24.    SET TALK ON
  25.    RETURN
  26. ENDIF
  27. *
  28. * Copy to a structure extended file to access the fieldnames...
  29. COPY TO Temp STRUCTURE EXTENDED
  30. USE Temp
  31. *
  32. * Convert field names to lower case...
  33. REPLACE ALL Field_name WITH LOWER(Field_name)
  34. *
  35. * Index and reopen the structure file, and erase the screen...
  36. INDEX ON Field_type + Field_name TO Temp
  37. USE Temp INDEX Temp
  38. CLEAR
  39. *
  40. * Initialize a text file to receive the output...
  41. STORE SUBSTR(datafile,1,AT(".",datafile)-1) TO textfile
  42. SET ALTERNATE TO &textfile
  43. SET ALTERNATE ON
  44. *
  45. * Output the initialization statements...
  46. STORE '00000000000000000000' TO zeros
  47. DO WHILE .NOT. EOF()
  48.    DO CASE
  49.       CASE Field_type = 'C'
  50.          ? 'm_' + SUBSTR(Field_name,1,8) + ' = SPACE(' + ;
  51.                   STR(Field_len,3) + ')'
  52.       CASE Field_type = 'N' .AND. Field_dec = 0
  53.          ? 'm_' + SUBSTR(Field_name,1,8) ' = ' +;
  54.                   SUBSTR(zeros,1,Field_len-Field_dec)
  55.       CASE Field_type = 'N' .AND. Field_dec > 0
  56.          ? 'm_' + SUBSTR(Field_name,1,8) ' = ' + ;
  57.                   SUBSTR(zeros,1,Field_len-Field_dec-1) + '.' +;
  58.                   SUBSTR(zeros,1,Field_dec)
  59.       CASE Field_type = 'L'
  60.          ? 'm_' + SUBSTR(Field_name,1,8) + ' = .F.'
  61.       CASE Field_type = 'D'
  62.          ? 'm_' + SUBSTR(Field_name,1,8) + ' = CTOD("  /  /  ")'
  63.    ENDCASE
  64.    SKIP
  65. ENDDO
  66. *
  67. * Output the STORE statements...
  68. ?
  69. GO TOP
  70. DO WHILE .NOT. EOF()
  71.    ? 'm_' + SUBSTR(Field_name,1,8) + ' = ' + ;
  72.      UPPER(SUBSTR(Field_name,1,1)) + SUBSTR(Field_name,2,9)
  73.    SKIP
  74. ENDDO
  75. *
  76. * Output the REPLACE statements...
  77. ?
  78. GO TOP
  79. DO WHILE .NOT. EOF()
  80.    ? 'REPLACE ' + UPPER(SUBSTR(Field_name,1,1)) + SUBSTR(Field_name,2,9) +;
  81.      ' WITH m_' + SUBSTR(Field_name,1,8)
  82.    SKIP
  83. ENDDO
  84. *
  85. * Close the text file...
  86. SET ALTERNATE OFF
  87. SET ALTERNATE TO
  88. *
  89. * Restore the environment, and exit...
  90. CLOSE DATABASES
  91. SET TALK ON
  92. RETURN
  93. * EOF_ Namegen3.prg
  94.  
  95.