/* Pro134D.c */ /* Word Capture in the middle of 'inline' by Memory Location '&inline[]'. */ /* This is Portable version of 'Pro134D.exe' (DATE-TIME Stamp Eraser) * to share. */ /* 'SDW-head.TXT' header file is replaced by a way in which * Pointers (*infpSDW, *infpZIP) read the files, the fileNames[] listing. * Two Magic Numbers became a user's input. */ /* SDW is working now, and now for ZIP. I preferred different * Pointer version (*infpSDW, *infpZIP), I wrote before. * Codes become redundant, but it is easy to read, and I * don't have to worry about if (SDW or ZIP)-> then this way, that way. */ /* Regarding char *fileNames [28, OR, 128], I am still confusing, * is this 128 is the max length of string(s), OR the max * number of static array members 28 ? */ #include <stdio.h> #include <string.h> // #define MgPathSDW 29 /* 33 for WEB-ARCH.01-02; 29 for CORP.01-01 */ // #define MgPathZIP 15 /* With extra CORP.02, could be 23 */ char inline [256]; char jumpThere [128]; char wordColumn1 [128]; char wordColumn10 [128]; char wordColumn16 [128]; char wordColumn22 [128]; char wordColumn29 [128]; char wordColumn39 [128]; char wordColumn45 [128]; char openingFile [64]; char openedFilename [64]; char openedFNWithPath [128]; /* Full name is openedFileNameWithPath */ char writingFile [64]; extern char *firstwd (char *to, char *from); extern char *shiftedLine (char *to, char *from); /* Pro998-2.c */ extern char *firstWD (char *to, char *from); /* 1stWd-09.c */ extern char *secondWD (char *to, char *from); /* 2ndWd-06.c */ extern char *thirdWD (char *to, char *from); /* 3rdWd-06.c */ extern char *fourthWD (char *to, char *from); /* 4thWd-07.c */ extern char *fifthWD (char *to, char *from); /* 5thWd-10.c */ extern char *sixthWD (char *to, char *from); /* 6thWd-06.c */ extern char *seventhWD (char *to, char *from); /* 7thWdEnd.c */ void main(void){ int i, MgPathSDW, MgPathZIP; FILE *infpSDW, *infpZIP; infpSDW=fopen ("HEADER.TXT", "r"); infpZIP=fopen ("HEADER.TXT", "r"); /* Right now, both 'SDW(ZIP)-head.TXT' are the same, so this doesn't make sense. But for convenience of opening another set of file listing. */ i=MgPathSDW=MgPathZIP=0; printf("Now we need a little adjustment about Path differences in files.\n"); printf("For example, your files in \\SDW\\ and \\ZIP\\ looks like this.\n\n"); printf("Directory of C:\\TO-CD\\CORP.02\\001-DIRC.TRY (SDW in Hard disk)\n"); printf("Directory of E:\\001-DIRC.TRY (From ZIP disk)\n"); printf("1...5....0....5....0....5....0....5\n"); printf("1 10 20 30 \n\n"); printf("In this case, if we erase 29 charaters for SDW and 15 for ZIP, \n"); printf("then, they become the same \\001-DIRC.TRY. Thus, erase the path \n"); printf("difference by setting,\n"); printf(" MgPathSDW is 29,\n"); printf(" MgPathZIP is 15.\n"); printf("Count carefully by using a cursor. And come back here to go to \n"); printf("the next step below. To exit now, as always [Ctrl]-key + [C]-key.\n\n"); printf("Type Number of MgPathSDW: \n"); scanf("%d", &MgPathSDW); printf("Magic Path for SDW is set to %d.\n\n", MgPathSDW); printf("Type Number of MgPathZIP: \n"); scanf("%d", &MgPathZIP); printf("Magic Path for ZIP is set to %d.\n\n", MgPathZIP); printf("One moment. Then, go to see if DATE-TIME stamps erased\n"); printf("files are there at \\SDW\\ERASED and \\ZIP\\ERASED.\n"); printf("If there, we can go to the final step '5Diff.exe'.\n"); printf("In case directory Path difference are not erased, count \n"); printf("Magic Path (SDW and ZIP) again, and run this Program again.\n"); while( (fgets(openingFile, 64, infpSDW))!=NULL ) { FILE *infp1, *outfp1; firstwd (openedFilename, &openingFile[4]); /* This firstwd() is important to capture the filename */ /* without extra blanks and a carrige return. */ sprintf(openedFNWithPath, "SDW\\%s", openedFilename); infp1=fopen ( openedFNWithPath, "r"); sprintf(writingFile, "SDW\\ERASED\\%s", openedFilename); outfp1=fopen( writingFile, "w"); i++; /* Maximum i is the MgFileNo in Array version */ while(fgets(inline, 256, infp1)!=NULL){ if (strncmp(inline, " Volume in drive C", 18)==0) fprintf (outfp1, "C\:\n"); else if(strncmp(inline, " Volume Serial", 14)==0) ; else if(strncmp(inline, "Directory of C", 14)==0){ shiftedLine(jumpThere, &inline[MgPathSDW]); fprintf (outfp1, "%s", jumpThere); }else if(strncmp(inline, "\n", 1)==0) fprintf (outfp1, "\n"); else if(strncmp(inline, " ", 6)==0) fprintf (outfp1, "%s", inline); else if(strncmp(inline, "Total", 5)==0) fprintf (outfp1, "%s", inline); else /* At here, I need to apply DATE-TIME Stamp Erasing */ { firstWD (wordColumn1, &inline[0]); secondWD (wordColumn10, &inline[9]); thirdWD (wordColumn16, &inline[15]); fourthWD (wordColumn22, &inline[21]); fifthWD (wordColumn29, &inline[28]); sixthWD (wordColumn39, &inline[38]); seventhWD(wordColumn45, &inline[44]); fprintf (outfp1, "%s", wordColumn1); fprintf (outfp1, "%s", wordColumn10); fprintf (outfp1, "%s", wordColumn16); fprintf (outfp1, "%s", wordColumn22); // fprintf (outfp1, "%s", wordColumn29); // fprintf (outfp1, "%s", wordColumn39); fprintf (outfp1, " "); fprintf (outfp1, "%s", wordColumn45); *wordColumn1 =0; /* Reset */ *wordColumn10=0; *wordColumn16=0; *wordColumn22=0; *wordColumn29=0; *wordColumn39=0; *wordColumn45=0; } } *openedFilename=0; /* Reset, in case */ *openedFNWithPath=0; fclose (infp1); fclose (outfp1); } /* Close the first Filename changing WHILE-LOOP for SDW */ MgPathSDW=0; /* Reset */ fclose (infpSDW); while( (fgets(openingFile, 64, infpZIP))!=NULL ) { FILE *infp2, *outfp2; firstwd (openedFilename, &openingFile[4]); sprintf(openedFNWithPath, "ZIP\\%s", openedFilename); infp2=fopen ( openedFNWithPath, "r"); sprintf(writingFile, "ZIP\\ERASED\\%s", openedFilename); outfp2=fopen( writingFile, "w"); i++; /* Maximum i is the MgFileNo in Array version */ while(fgets(inline, 256, infp2)!=NULL){ if(strncmp(inline, " Volume in drive D", 18)==0) fprintf (outfp2, "D\:\n"); else if(strncmp(inline, " Volume in drive E", 18)==0) fprintf (outfp2, "E\:\n"); else if(strncmp(inline, " Volume Serial", 14)==0) ; else if(strncmp(inline, "Directory of D", 14)==0){ shiftedLine(jumpThere, &inline[MgPathZIP]); fprintf (outfp2, "%s", jumpThere); }else if(strncmp(inline, "Directory of E", 14)==0){ shiftedLine(jumpThere, &inline[MgPathZIP]); fprintf (outfp2, "%s", jumpThere); }else if(strncmp(inline, "\n", 1)==0) fprintf (outfp2, "\n"); else if(strncmp(inline, " ", 6)==0) fprintf (outfp2, "%s", inline); else if(strncmp(inline, "Total", 5)==0) fprintf (outfp2, "%s", inline); else /* At here, I need to apply DATE-TIME Stamp Erasing */ { firstWD (wordColumn1, &inline[0]); secondWD (wordColumn10, &inline[9]); thirdWD (wordColumn16, &inline[15]); fourthWD (wordColumn22, &inline[21]); fifthWD (wordColumn29, &inline[28]); sixthWD (wordColumn39, &inline[38]); seventhWD(wordColumn45, &inline[44]); fprintf (outfp2, "%s", wordColumn1); fprintf (outfp2, "%s", wordColumn10); fprintf (outfp2, "%s", wordColumn16); fprintf (outfp2, "%s", wordColumn22); // fprintf (outfp2, "%s", wordColumn29); // fprintf (outfp2, "%s", wordColumn39); fprintf (outfp2, " "); fprintf (outfp2, "%s", wordColumn45); *wordColumn1 =0; /* Rest */ *wordColumn10=0; *wordColumn16=0; *wordColumn22=0; *wordColumn29=0; *wordColumn39=0; *wordColumn45=0; } } fclose (infp2); fclose (outfp2); } /* Close the second Filename changing WHILE-LOOP for ZIP */ MgPathZIP=0; /* Reset */ fclose (infpZIP); }