home *** CD-ROM | disk | FTP | other *** search
- //////////////////////////// MERGE.SLT ///////////////////////////////////////
-
- // The Telix Hacker password merge utility
-
- // Shawn-da-Lay Boy Productions (tm) (c) 1989, 1990, 2001...
-
- str file_in1[12] = "";
- str file_in2[12] = "";
- str file_out[12] = "";
-
- int fi1;
- int fi2;
- int fo;
-
- str data1[80] = "";
- str data2[80] = "";
-
- int n;
-
- int cnt_fi1 = 0;
- int cnt_fi2 = 0;
- int cnt_fo = 0;
- int cnt_dup = 0;
-
- str cntrlz[1] = "^Z"; // real control-z...
-
- main()
- {
- Clear_scr(); // clear the screen
-
- prints(" Telix Hacker Password Merge Utility");
-
- prints("");
- prints("");
- prints("");
-
- Prints("Enter the first input filename?");
- n = gets(file_in1, 12);
- if (N < 1)
- {
- Prints("You must specify an input file.");
- return -99;
- }
-
- prints("");
- Prints("Enter the second input filename?");
- n = gets(file_in2, 12);
- if (N < 1)
- {
- Prints("You must specify an input file.");
- return -99;
- }
-
- prints("");
- Prints("Enter the output filename?");
- n = gets(file_out, 12);
- if (N < 1)
- {
- Prints("You must specify an output file.");
- return -99;
- }
-
- prints("");
-
- fi1 = fopen(file_in1, "r");
- if (fi1 == 0) // error if no file.
- {
- alarm(1);
- Printsc("Cannot open file ");
- Printsc(file_in1);
- Prints(". Run terminated.");
- return -1;
- }
-
- fi2 = fopen(file_in2, "r");
- if (fi2 == 0) // error if no file.
- {
- alarm(1);
- Printsc("Cannot open file ");
- Printsc(file_in2);
- Prints(". Run terminated.");
- return -1;
- }
-
- fo = fopen(file_out, "a");
- if (fo == 0) // error if no file.
- {
- alarm(1);
- Printsc("Cannot open file ");
- Printsc(file_out);
- Prints(". Run terminated.");
- return -1;
- }
-
- prints("");
- prints(" Merging");
-
- fgets(data1,80,fi1);
- fgets(data2,80,fi2);
- cnt_fi1 = 1;
- cnt_fi2 = 1;
-
- while(1)
- {
-
- if((data1 == cntrlz or feof(fi1)) and (data2 == cntrlz or feof(fi2))) break;
-
- if(data1 == cntrlz or feof(fi1))
- {
- cnt_fo = cnt_fo + 1;
- cnt_fi2 = cnt_fi2 + 1;
- fputs(data2, fo); // write it
- fputs("^M^J", fo); // with cr lf
- fgets(data2,80,fi2); // read next
- continue;
- }
-
- if(data2 == cntrlz or feof(fi2))
- {
- cnt_fo = cnt_fo + 1;
- cnt_fi1 = cnt_fi1 + 1;
- fputs(data1, fo); // write it
- fputs("^M^J", fo); // with cr lf
- fgets(data1,80,fi1); // read next
- continue;
- }
-
- if(data1 < data2)
- {
- cnt_fo = cnt_fo + 1;
- cnt_fi1 = cnt_fi1 + 1;
- fputs(data1, fo); // write it
- fputs("^M^J", fo); // with cr lf
- fgets(data1,80,fi1); // read next
- continue;
- }
-
- if(data1 == data2)
- {
- printsc("Duplicate string: ");
- prints(data1);
- cnt_fo = cnt_fo + 1;
- cnt_fi2 = cnt_fi2 + 1;
- cnt_fi1 = cnt_fi1 + 1;
- cnt_dup = cnt_dup + 1;
- fputs(data1, fo); // write it
- fputs("^M^J", fo); // with cr lf
- fgets(data1,80,fi1); // read next
- fgets(data2,80,fi2); // read next
- continue;
- }
-
- if(data1 > data2)
- {
- cnt_fo = cnt_fo + 1;
- cnt_fi2 = cnt_fi2 + 1;
- fputs(data2, fo); // write it
- fputs("^M^J", fo); // with cr lf
- fgets(data2,80,fi2); // read next
- continue;
- }
-
- }
-
- fputs(cntrlz, fo); // write eof...
- fclose(fi1);
- fclose(fi2);
- fclose(fo);
-
- Prints("");
- Prints("Merge done.");
- Prints("");
-
- printn(cnt_fi1 - 1);
- printsc(" records read from file ");
- printsc(file_in1);
- prints(".");
-
- printn(cnt_fi2 - 1);
- printsc(" records read from file ");
- printsc(file_in2);
- prints(".");
-
- printn(cnt_dup);
- prints(" duplicate records found.");
-
- printn(cnt_fo);
- printsc(" records written to file ");
- printsc(file_out);
- prints(".");
-
- }