/* Pro136D.c */ /* Automatic generation of a pair of All fileNames[] = {} Header file for DATE-TIME stamp erase AND 'diff' in C. */ /* Read 'DIR.TXT' */ /* This 'DIR.TXT' must be make Win95, Win98 or later. Check there is a full name of directory at Column 45. This one doesn't work if I make 'DIR-01.TXT' in Win3.1 . */ /* Write 'HEADER.TXT' and 'OUT-HEAD.TXT' */ /* This C program is a variation of 'Pro136C.c' which automatically generate DOS-Batch program after it captures Directory names. */ /* * 10 20 30 40 50 * 1...5....0....5....0....5....0....5....0....5....0 * KMAIL <DIR> 04-27-04 1:07a KMAIL.003 * TO-CD <DIR> 04-29-04 6:13p TO-CD.005 * Therefore, directory name Magic Number for memory is '44'. */ #include <stdio.h> #include <string.h> char inline [256]; char id [128]; extern char *firstwd (char *to, char *from); /* Recycling Object 'firstwd()' */ extern char *first8orLess (char *to, char *from); /* Modified Recycling Object */ /* OR */ // extern char *firstwd (char *, char *); void main(void){ FILE *infp1, *infp2, *outfp1, *outfp2; infp1=fopen("DIR.txt", "r"); outfp1=fopen("HEADER.TXT", "w"); printf("This makes header files for '4Eraser.exe' and '5Diff.exe'. They are, \n\n"); printf(" 'HEADER.TXT' and \n"); printf(" 'OUT-HEAD.TXT'\n\n"); printf("If they are not created, check if 'DIR.TXT' is in this temporary \n"); printf("directory.\n"); /* Here I eat first SEVEN lines, recognizing. */ fgets(inline, 256, infp1); if(strncmp(inline, "\n", 1)==0); fgets(inline, 256, infp1); if(strncmp(inline, " Volume in", 10)==0); fgets(inline, 256, infp1); if(strncmp(inline, " Volume Serial", 14)==0); fgets(inline, 256, infp1); if(strncmp(inline, " Directory of", 13)==0); fgets(inline, 256, infp1); if(strncmp(inline, "\n", 1)==0); fgets(inline, 256, infp1); if(strncmp(inline, ". ", 2)==0); fgets(inline, 256, infp1); if(strncmp(inline, "..", 2)==0); while(fgets(inline, 256, infp1)!=NULL){ if(strncmp(inline, " ", 6)==0)break; /* To deal the last two incoming lines */ firstwd(id, &inline[44]); fprintf (outfp1, " %s \n", id); } fclose (infp1); fclose (outfp1); /* ======== ANOTHER SET FOR OUTPUT FILE ============= */ infp2=fopen("DIR.txt", "r"); outfp2=fopen("OUT-Head.TXT", "w"); /* Here I eat first SEVEN lines, recognizing. */ fgets(inline, 256, infp1); if(strncmp(inline, "\n", 1)==0); fgets(inline, 256, infp1); if(strncmp(inline, " Volume in", 10)==0); fgets(inline, 256, infp1); if(strncmp(inline, " Volume Serial", 14)==0); fgets(inline, 256, infp1); if(strncmp(inline, " Directory of", 13)==0); fgets(inline, 256, infp1); if(strncmp(inline, "\n", 1)==0); fgets(inline, 256, infp1); if(strncmp(inline, ". ", 2)==0); fgets(inline, 256, infp1); if(strncmp(inline, "..", 2)==0); while(fgets(inline, 256, infp2)!=NULL){ if(strncmp(inline, " ", 6)==0)break; /* To deal the last two incoming lines */ first8orLess(id, &inline[44]); fprintf (outfp2, " %s \n", id); } fclose (infp2); fclose (outfp2); }