Tomasm21

Finding dublicates of special text string

Feb 21st, 2021
792
3 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "stdafx.h"
  2. #include <fstream>
  3. #include <iostream>
  4. #include <string>
  5. #include <vector>
  6. #include <sstream>
  7. using namespace std;
  8.  
  9. int main()
  10. {
  11.     int num = 0, index = 0, found, number, no = 0, position;
  12.     string row, line, temp;
  13.     vector<int> v;
  14.     vector<string> str_vec;
  15.     ifstream used_frames("E:\\ZDaemon\\wads\\dehsupp_zd110b1\\ZeroDev_dehsupp\\My_frames\\used_frames.txt");
  16.     //ofstream outfile("E:\\ZDaemon\\wads\\dehsupp_zd110b1\\ZeroDev_dehsupp\\My_frames\\test1.txt");
  17.  
  18.     if (used_frames.is_open())
  19.     {
  20.         cout << "File is found!" << endl << endl;
  21.  
  22.         while (!used_frames.fail())//(used_frames.getline(line, 16))
  23.         {
  24.             getline(used_frames, row);
  25.             cout << row << endl;
  26.             cout << used_frames.tellg() << endl << endl;
  27.             //cout << used_frames.get() << endl << endl;
  28.             num++;
  29.         }
  30.         cout << "Lines: " << num << endl << endl;
  31.         used_frames.clear();
  32.         used_frames.seekg(0, used_frames.beg);
  33.  
  34.         string str2("Frame ");
  35.         cout << "\"" << str2 << "\" length: " << str2.length() << "\n" << endl;
  36.         for (int j = 0; j < num; j++)
  37.         {
  38.             getline(used_frames, line); position = used_frames.tellg();
  39.             if(!(line.substr(0, 6) == str2 && stringstream(line.substr(6, line.length()-6)) >> number && number > 966 && number < 5088 && line.length() <= 10))
  40.             {
  41.                 //cout << line << endl;
  42.             }
  43.             else
  44.             {
  45.                 no = 0;
  46.                 for (int k = j; k < num; k++)
  47.                 {
  48.                     getline(used_frames, temp);
  49.                     if (temp.compare(line) == 0)
  50.                     {
  51.                         no++;
  52.                         for (decltype(str_vec.size()) i = 0; i < str_vec.size(); i++)
  53.                         if (temp.compare(str_vec[i]) == 0)
  54.                         {
  55.                             no = 0;
  56.                             //cout << str_vec[i] << " is a dublicate" << endl;
  57.                             break;
  58.                         }
  59.                     }
  60.                
  61.                 }
  62.                 if (no > 0)
  63.                 {
  64.                     cout << line << " has " << no + 1 << " dublicates" << endl;
  65.                     str_vec.push_back(line);
  66.                 }
  67.                 used_frames.clear();
  68.                 used_frames.seekg(position, used_frames.beg);
  69.             }
  70.            
  71.         }
  72.         used_frames.close();
  73.     }
  74.     else cout << "File is NOT found!" << endl << endl;
  75.  
  76.     return 0;
  77. }
RAW Paste Data