Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.34 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement