#include "creatdct.h" /* convert file with variable names on top to dictionary Copyright (c) 1992 by CRC */ /* Allocation of globals */ struct optionsdf options ; char filename[FILENAMELENGTH] ; FILE *inf ; int end_of_file = 0 ; int eof_okay = 0 ; struct vardf vars[MAXVARS] ; int numvar ; int maxlinelength ; int first_dta_line_no ; int title_trouble = 0 ; char progname[] = "creatdct" ; /* Forward references */ static void proccmdline() ; static void syntax() ; static int chkeck_eof() ; static void doit() ; int main(argc, argv) int argc ; char *argv[] ; { options.notitle = options.debug = options.dct_only = 0 ; options.skip_blanks = 1 ; proccmdline(argc, argv) ; if ((inf=fopen(filename,"r"))==NULL) { fprintf(stderr,"%s: %s: could not be opened\n", progname,filename) ; return(FILE_ERROR) ; } doit() ; fclose(inf) ; return(0) ; } static void proccmdline(argc, argv) int argc ; char *argv[] ; { int i ; int fndefined ; for (fndefined=0,i=1;i outfile\n", progname,progname,ALTSWITCHAR,ALTSWITCHAR,ALTSWITCHAR) ; fprintf(stderr,"\n\ %s Reads data with variable names on top and writes to standard out\n\ %s a Stata .dct dictionary that can read the data.\n\n", blnkname,blnkname) ; fprintf(stderr,"\ %s Options:\n\ %s %cb treat blank lines as significant;\n\ %s %cd write only the dictionary, referring to rather than including\n\ %s the raw data in the output;\n", blnkname,blnkname,ALTSWITCHAR, blnkname,ALTSWITCHAR,blnkname) ; fprintf(stderr,"\ %s %ct infile contains data only; no titles.\n", blnkname, ALTSWITCHAR) ; fprintf(stderr,"\n\ %s Limits:\n\ %s Maximum width of input file: %6d\n\ %s Maximum number of variables: %6d\n", blnkname,blnkname,MAXWIDTH,blnkname,MAXVARS) ; fprintf(stderr,"\n\ %s References:\n\ %s STB-9: dm10 (which includes source code)\n\n", blnkname, blnkname ) ; exit(SYNTAX_ERROR) ; /*NOTREACHED*/ } static void doit() { Line ttl ; if (options.notitle) initline(&ttl) ; else (void) getnbline(&ttl) ; pass1(&ttl) ; reopen() ; pass2(&ttl) ; reopen() ; pass3(&ttl) ; }