home *** CD-ROM | disk | FTP | other *** search
/ The Unsorted BBS Collection / thegreatunsorted.tar / thegreatunsorted / hacking / phreak_utils_pc / merge.slt < prev    next >
Encoding:
Text File  |  1990-02-14  |  3.9 KB  |  193 lines

  1. //////////////////////////// MERGE.SLT ///////////////////////////////////////
  2.  
  3. //        The Telix Hacker password merge utility
  4.  
  5. //      Shawn-da-Lay Boy Productions (tm) (c) 1989, 1990, 2001...
  6.  
  7. str file_in1[12] = "";
  8. str file_in2[12] = "";
  9. str file_out[12] = "";
  10.  
  11. int fi1;
  12. int fi2;
  13. int fo;
  14.  
  15. str data1[80] = "";
  16. str data2[80] = "";
  17.  
  18. int n;
  19.  
  20. int cnt_fi1 = 0;
  21. int cnt_fi2 = 0;
  22. int cnt_fo = 0;
  23. int cnt_dup = 0;
  24.  
  25. str cntrlz[1] = "^Z";              // real control-z...
  26.  
  27. main()
  28. {
  29.   Clear_scr();     // clear the screen
  30.  
  31.   prints("              Telix Hacker Password Merge Utility");
  32.  
  33.   prints("");
  34.   prints("");
  35.   prints("");
  36.  
  37.   Prints("Enter the first input filename?");
  38.   n = gets(file_in1, 12);
  39.   if (N < 1)
  40.   {
  41.     Prints("You must specify an input file.");
  42.     return -99;
  43.   }
  44.  
  45.   prints("");
  46.   Prints("Enter the second input filename?");
  47.   n = gets(file_in2, 12);
  48.   if (N < 1)
  49.   {
  50.     Prints("You must specify an input file.");
  51.     return -99;
  52.   }
  53.  
  54.   prints("");
  55.   Prints("Enter the output filename?");
  56.   n = gets(file_out, 12);
  57.   if (N < 1)
  58.   {
  59.     Prints("You must specify an output file.");
  60.     return -99;
  61.   }
  62.  
  63.   prints("");
  64.  
  65.   fi1 = fopen(file_in1, "r");
  66.   if (fi1 == 0)       // error if no file.
  67.   {
  68.     alarm(1);
  69.     Printsc("Cannot open file ");
  70.     Printsc(file_in1);
  71.     Prints(". Run terminated.");
  72.     return -1;
  73.   }
  74.  
  75.   fi2 = fopen(file_in2, "r");
  76.   if (fi2 == 0)       // error if no file.
  77.   {
  78.     alarm(1);
  79.     Printsc("Cannot open file ");
  80.     Printsc(file_in2);
  81.     Prints(". Run terminated.");
  82.     return -1;
  83.   }
  84.  
  85.   fo = fopen(file_out, "a");
  86.   if (fo == 0)       // error if no file.
  87.   {
  88.     alarm(1);
  89.     Printsc("Cannot open file ");
  90.     Printsc(file_out);
  91.     Prints(". Run terminated.");
  92.     return -1;
  93.   }
  94.  
  95.   prints("");
  96.   prints("          Merging");
  97.  
  98.   fgets(data1,80,fi1);
  99.   fgets(data2,80,fi2);
  100.   cnt_fi1 = 1;
  101.   cnt_fi2 = 1;
  102.  
  103.   while(1)
  104.   {
  105.  
  106.     if((data1 == cntrlz or feof(fi1)) and (data2 == cntrlz or feof(fi2))) break;
  107.  
  108.     if(data1 == cntrlz or feof(fi1))
  109.     {
  110.       cnt_fo = cnt_fo + 1;
  111.       cnt_fi2 = cnt_fi2 + 1;
  112.       fputs(data2, fo);   // write it
  113.       fputs("^M^J", fo);   // with cr lf
  114.       fgets(data2,80,fi2);  // read next
  115.       continue;
  116.     }
  117.  
  118.     if(data2 == cntrlz or feof(fi2))
  119.     {
  120.       cnt_fo = cnt_fo + 1;
  121.       cnt_fi1 = cnt_fi1 + 1;
  122.       fputs(data1, fo);   // write it
  123.       fputs("^M^J", fo);   // with cr lf
  124.       fgets(data1,80,fi1); // read next
  125.       continue;
  126.     }
  127.  
  128.     if(data1 < data2)
  129.     {
  130.       cnt_fo = cnt_fo + 1;
  131.       cnt_fi1 = cnt_fi1 + 1;
  132.       fputs(data1, fo);   // write it
  133.       fputs("^M^J", fo);   // with cr lf
  134.       fgets(data1,80,fi1); // read next
  135.       continue;
  136.     }
  137.  
  138.     if(data1 == data2)
  139.     {
  140.       printsc("Duplicate string: ");
  141.       prints(data1);
  142.       cnt_fo = cnt_fo + 1;
  143.       cnt_fi2 = cnt_fi2 + 1;
  144.       cnt_fi1 = cnt_fi1 + 1;
  145.       cnt_dup = cnt_dup + 1;
  146.       fputs(data1, fo);   // write it
  147.       fputs("^M^J", fo);   // with cr lf
  148.       fgets(data1,80,fi1); // read next
  149.       fgets(data2,80,fi2); // read next
  150.       continue;
  151.     }
  152.  
  153.     if(data1 > data2)
  154.     {
  155.       cnt_fo = cnt_fo + 1;
  156.       cnt_fi2 = cnt_fi2 + 1;
  157.       fputs(data2, fo);   // write it
  158.       fputs("^M^J", fo);   // with cr lf
  159.       fgets(data2,80,fi2); // read next
  160.       continue;
  161.     }
  162.  
  163.   }
  164.  
  165.   fputs(cntrlz, fo);   // write eof...
  166.   fclose(fi1);
  167.   fclose(fi2);
  168.   fclose(fo);
  169.  
  170.   Prints("");
  171.   Prints("Merge done.");
  172.   Prints("");
  173.  
  174.   printn(cnt_fi1 - 1);
  175.   printsc(" records read from file ");
  176.   printsc(file_in1);
  177.   prints(".");
  178.  
  179.   printn(cnt_fi2 - 1);
  180.   printsc(" records read from file ");
  181.   printsc(file_in2);
  182.   prints(".");
  183.  
  184.   printn(cnt_dup);
  185.   prints(" duplicate records found.");
  186.  
  187.   printn(cnt_fo);
  188.   printsc(" records written to file ");
  189.   printsc(file_out);
  190.   prints(".");
  191.  
  192. }
  193.