home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS 1992 December / simtel1292_SIMTEL_1292_Walnut_Creek.iso / msdos / deskaces / reminder.arc / REMIND.C < prev    next >
C/C++ Source or Header  |  1989-11-18  |  3KB  |  125 lines

  1. /* remind.c: Make an entry in the dates file for reminder.
  2.  *   Programmed by Ken Van Camp, ARDEC, October 1987.
  3.  */
  4.  
  5. /*      11-18-89        RjR     Port to MS C.  Uses ".\dates".
  6.  */
  7.  
  8. #define MSC
  9. #define DATEFILE ".\\dates"
  10.  
  11. #ifdef CHECKCZ
  12. #include <fcntl.h>
  13. int fd;
  14. #else
  15.     #ifdef MSC
  16.     #include <fcntl.h>
  17.     #include <stdio.h>
  18.     FILE *fd;
  19.     #else
  20.     FILE *fd, *fopen();
  21.     #endif
  22. #endif
  23.  
  24. void getdata();
  25.  
  26. main(argc,argv)
  27. int argc;
  28. char *argv[];
  29. {
  30.         char    line[256],
  31.                 event[128],
  32.                 person[128],
  33.                 tim[20],
  34.                 dat[30],
  35.                 ndays[10];
  36. #ifdef CHECKCZ
  37.         int     i;
  38.         char    c;
  39.  
  40.         if (argc > 1){
  41.                 if ((fd = open (argv[1], O_RDWR|O_CREAT)) < 0){
  42.                         fprintf(stderr,"Error: Can't open file '%s'\n",
  43.                                 argv[1]);
  44.                         exit(1);
  45.                 }
  46.         }else{
  47.                 if ((fd = open (DATEFILE, O_RDWR|O_CREAT)) < 0){
  48.                         fprintf(stderr,"Error: Can't open file '%s'\n",
  49.                                 DATEFILE);
  50.                         exit(1);
  51.                 }
  52.         }
  53. #else
  54.         if (argc > 1){
  55.                 if ((fd = fopen (argv[1], "a")) == NULL){
  56.                         fprintf(stderr,"Error: Can't open file '%s'\n",
  57.                                 argv[1]);
  58.                         exit(1);
  59.                 }
  60.         }else{
  61.                 if ((fd = fopen (DATEFILE, "a")) == NULL){
  62.                         fprintf(stderr,"Error: Can't open file '%s'\n",
  63.                                 DATEFILE);
  64.                         exit(1);
  65.                 }
  66.         }
  67. #endif
  68.  
  69. #ifdef CHECKCZ
  70.         /* Read forward in file til EOF (either CTRL-Z or no more data) */
  71.         i = 1;
  72.         while (i > 0){
  73.                 i = read (fd, &c, 1);
  74. #ifdef DEBUG
  75.                 putchar(c);
  76. #endif
  77.                 if (c == '\032'){       /* CTRL-Z is End of file marker */
  78.                         /* Stop the read here and backup one byte for
  79.                            subsequent writes */
  80. #ifdef DEBUG
  81.                         printf("Read EOF\n");
  82. #endif
  83.                         i = 0;
  84.                         lseek (fd, -1, 1);
  85.                 }
  86.         }
  87. #ifdef DEBUG
  88.         printf("No more chars to read\n");
  89. #endif
  90. #endif
  91.         getdata ("Event for reminder file", event);
  92.         getdata ("Person", person);
  93.         getdata ("Time (e.g. 1300)", tim);
  94.         getdata ("Date (mm/dd/yy or mm/dd or dd or ddd)", dat);
  95.         getdata ("Number of days notice", ndays);
  96.  
  97. #ifdef CHECKCZ
  98.         sprintf(line,"%s:%s:%s %s:%s:N\n", dat, ndays, tim, event, person);
  99.         write (fd, line, strlen(line));
  100.         close(fd);
  101. #else
  102.         fprintf(fd,"%s:%s:%s %s:%s:N\n", dat, ndays, tim, event, person);
  103.         fclose(fd);
  104. #endif
  105. }
  106.  
  107. /* getdata: Get another data item for the reminder file */
  108. void getdata (prompt, vbl)
  109. char    *prompt, *vbl;
  110. {
  111.         int ok=0;
  112.         char *c, *strchr();
  113.  
  114.         while (!ok){
  115.                 printf ("%s: ", prompt);
  116.                 gets(vbl);
  117.                 c = strchr(vbl,':');
  118.                 /* This should modified to check for a preceding backslash */
  119.                 if (*c != NULL)
  120.                         printf ("Error: Can't use a colon; please retype.\n");
  121.                 else
  122.                         ok = 1;
  123.         }
  124. }
  125.