daily pastebin goal
69%
SHARE
TWEET

Untitled

a guest Feb 21st, 2019 57 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <fstream>
  3. #include <cstdint>
  4. #include <string>
  5. #include <vector>
  6. #include <algorithm>
  7. #include <ctime>
  8. using namespace std;
  9.  
  10.  
  11. struct Pakiet {
  12.     int size;
  13.  
  14.     Pakiet(int size): size(size) {};
  15. };
  16.  
  17. vector<char> read_file(string fileName) {
  18.     vector<char> odczyt;
  19.     fstream file;
  20.     file.open(fileName, ios::in|ios::binary);
  21.     if (!file.good()) {
  22.         cout << "dupadebugging\n";
  23.     }
  24.     char temp;
  25.     while (file.get(temp)) {
  26.         odczyt.push_back(temp);
  27.     }
  28.     return odczyt;
  29. }
  30.  
  31. void write_file(string file_name, vector<char*> &data, int parameter) {
  32.     fstream file;
  33.     file.open(file_name, ios::out|ios::binary);
  34.  
  35.     if (!file.good()) {
  36.         cout << "This file is corrupted or does not exist!" << endl;
  37.     }
  38.     for (int i = 0; i < data.size(); i++) {
  39.         Pakiet* pakiet = (Pakiet*)data[i];
  40.         char* dane = data[i>>parameter] ;
  41.         file.write(dane, pakiet->size);
  42.         //file << ' ';
  43.     }
  44.     file.close();
  45. }
  46.  
  47.  
  48.  
  49.  
  50. int main(int argc, char *argv[])
  51. {
  52.     cout<<"podaj wspolczynnik bledow";
  53.     int n;
  54.     cin>>n;
  55.     srand(n);
  56.     int blad =  rand()%10;
  57.  
  58.     int maksRozmiarPakietu = 8;
  59.     vector<char> tekst = read_file("input.txt");
  60.     vector<char*> daneJakoPakiety;
  61.     int indeks = 0;
  62.     //cout << "Dane po odczycie z pliku dane.txt: \n";
  63. for (int i = 0; i < tekst.size(); i += maksRozmiarPakietu) {
  64.         int rozmiar = 0;
  65.         if (i + maksRozmiarPakietu <= tekst.size() - 1) {
  66.             rozmiar =  maksRozmiarPakietu;
  67.         }
  68.         else {
  69.             rozmiar = (tekst.size()) % i;
  70.         }
  71.             daneJakoPakiety.push_back(new char[sizeof(Pakiet) + rozmiar*sizeof(char)]);
  72.             Pakiet* pakiet = (Pakiet*)daneJakoPakiety.back();
  73.             indeks++;
  74.             pakiet->size = rozmiar;
  75.             char* dane = daneJakoPakiety.back() + sizeof(Pakiet);
  76.             for (int j = i; j < i + rozmiar; j++) {
  77.                 *dane = tekst[j];
  78.                 dane++;
  79.             }
  80.  
  81.     }
  82.  
  83.     //random_shuffle(daneJakoPakiety.begin(), daneJakoPakiety.end());*/
  84.  
  85.     for (int i = 0; i < tekst.size(); i += maksRozmiarPakietu) {
  86.             daneJakoPakiety.push_back(new char[sizeof(Pakiet)]);
  87.             Pakiet* pakiet = (Pakiet*)daneJakoPakiety.back();
  88.             indeks++;
  89.             //pakiet->size = rozmiar;
  90.             char* dane = daneJakoPakiety.back() + sizeof(Pakiet);
  91.  
  92.     }
  93.     write_file("wyjscie.txt",daneJakoPakiety , blad);
  94.     for (int i = daneJakoPakiety.size()-1; i >= 0; i--) {
  95.         delete[] daneJakoPakiety[i];
  96.  
  97.     }
  98.  
  99.     cout << endl;
  100.     system("PAUSE");
  101.     return EXIT_SUCCESS;
  102. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top