home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Interactive Guide / c-cplusplus-interactive-guide.iso / c_ref / csource1 / chint / useful15.hnt < prev    next >
Text File  |  1992-06-10  |  3KB  |  67 lines

  1. /*
  2.   This useful hint show how to change the "dbnames" array.  This is the array
  3.   of file names that will be used by DOS to store the data records and index
  4.   key strings.
  5.  
  6.   The approach taken is to re-set all names to the base name selected via
  7.   a choose box, however simple modifications of this routine could be made
  8.   so that only some names were modified, or so that different sets of names
  9.   could be used.
  10.  
  11.  
  12.   Step 1.  Create a function to prompt for user input, then use the response
  13.            to select the names to be used.  Create a function files called
  14.            DBNAMES.FUN and put the following code into it...
  15.  
  16. */
  17. void setDBNames(void)
  18. {
  19.   int i, j, l, p;
  20.   uchar dummy[81];
  21.   uchar baseName[7];
  22.  
  23.   strcpy(baseName,"BOOK");
  24.   choose(dummy,"BOOK|CASH|MINE|YOURS","1 - BOOK|2 - CASH|3 - MINE|4 - YOURS",baseName);
  25.   for (i=1; i<=maxfilno; i++) {
  26.     for (j=0; j<=maxkeyno; j++) {
  27.       strip(dbnames[i][j],dbnames[i][j]);
  28.       l = strlen(dbnames[i][j]);
  29.       p = strposch('.',dbnames[i][j]);
  30.       if (p < 2) p = 2;
  31.       strconcat(dbnames[i][j],baseName,strcopy(dummy,dbnames[i][j],p-2,l-(p-3)),NULL);
  32.     }
  33.   }
  34. }
  35.  
  36.  
  37.   Step 2.  Once this routine has been written you need to create a custom
  38.            version of the standard skeletons to make a call to it before
  39.            it opens the files...
  40.  
  41.            i)   COPY  DBC.SKL     DBCN.SKL
  42.            ii)  COPY  DBCFIX.SKL  DBCFIXN.SKL
  43.            iii) COPY  DBCREP.SKL  DBCREPN.SKL
  44.  
  45.            Now modify the three skeletons by adding a "#include" directive
  46.            at the top of the program.  Add this following line after the all
  47.            variable declarations in each of the three skeletons...
  48.  
  49.                #include "dbnames.fun"
  50.  
  51.            The second modification is to add a call to the "setDBNames()"
  52.            function near the start of the main program block in each
  53.            skeleton.  We will add this statement just after the test for
  54.            a valid path has been completed...
  55.  
  56.                ...
  57.                else if (!validpath()) {
  58.                  audible(Error);
  59.                  dspmsge(LSC_BaseError,LSC_AbortBadPath,4.0);
  60.                }
  61.                else {
  62.                  setDBNames();   /* Inserted this line */
  63.                ...
  64.  
  65.   Step 3.  Simply generate your programs using these modified skeletons,
  66.            when the generated and compiled program is run a choose will
  67.            first appear to prompt for the base name to use.