Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <cstdint>
- #include <string>
- #include <vector>
- #include <algorithm>
- #include <ctime>
- using namespace std;
- struct Pakiet {
- int size;
- Pakiet(int size): size(size) {};
- };
- vector<char> read_file(string fileName) {
- vector<char> odczyt;
- fstream file;
- file.open(fileName, ios::in|ios::binary);
- if (!file.good()) {
- cout << "dupadebugging\n";
- }
- char temp;
- while (file.get(temp)) {
- odczyt.push_back(temp);
- }
- return odczyt;
- }
- void write_file(string file_name, vector<char*> &data, int parameter) {
- fstream file;
- file.open(file_name, ios::out|ios::binary);
- if (!file.good()) {
- cout << "This file is corrupted or does not exist!" << endl;
- }
- for (int i = 0; i < data.size(); i++) {
- Pakiet* pakiet = (Pakiet*)data[i];
- char* dane = data[i>>parameter] ;
- file.write(dane, pakiet->size);
- //file << ' ';
- }
- file.close();
- }
- int main(int argc, char *argv[])
- {
- cout<<"podaj wspolczynnik bledow";
- int n;
- cin>>n;
- srand(n);
- int blad = rand()%10;
- int maksRozmiarPakietu = 8;
- vector<char> tekst = read_file("input.txt");
- vector<char*> daneJakoPakiety;
- int indeks = 0;
- //cout << "Dane po odczycie z pliku dane.txt: \n";
- for (int i = 0; i < tekst.size(); i += maksRozmiarPakietu) {
- int rozmiar = 0;
- if (i + maksRozmiarPakietu <= tekst.size() - 1) {
- rozmiar = maksRozmiarPakietu;
- }
- else {
- rozmiar = (tekst.size()) % i;
- }
- daneJakoPakiety.push_back(new char[sizeof(Pakiet) + rozmiar*sizeof(char)]);
- Pakiet* pakiet = (Pakiet*)daneJakoPakiety.back();
- indeks++;
- pakiet->size = rozmiar;
- char* dane = daneJakoPakiety.back() + sizeof(Pakiet);
- for (int j = i; j < i + rozmiar; j++) {
- *dane = tekst[j];
- dane++;
- }
- }
- //random_shuffle(daneJakoPakiety.begin(), daneJakoPakiety.end());*/
- for (int i = 0; i < tekst.size(); i += maksRozmiarPakietu) {
- daneJakoPakiety.push_back(new char[sizeof(Pakiet)]);
- Pakiet* pakiet = (Pakiet*)daneJakoPakiety.back();
- indeks++;
- //pakiet->size = rozmiar;
- char* dane = daneJakoPakiety.back() + sizeof(Pakiet);
- }
- write_file("wyjscie.txt",daneJakoPakiety , blad);
- for (int i = daneJakoPakiety.size()-1; i >= 0; i--) {
- delete[] daneJakoPakiety[i];
- }
- cout << endl;
- system("PAUSE");
- return EXIT_SUCCESS;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement