Kontener* Reader::ReadMap(std::string path) { std::ifstream plik(path.c_str()); if(!plik) throw FileOpenError(path); Kontener* wynik=NULL; while(!plik.eof()) { char tmp[255]; char trash; plik.getline(tmp,255); if(tmp[0]=='#') continue; if(tmp[0]=='c') { if(wynik) throw FileSyntaxError(path,tmp,"Double definition cities number"); int size; sscanf(tmp,"%c %d",&trash,&size); wynik=new Kontener(size); } else if(tmp[0]=='r') { if(!wynik) throw FileSyntaxError(path,tmp,"Missing cities number definition"); int src,dst,len; sscanf(tmp,"%c %d %d %d",&trash,&src,&dst,&len); wynik->AddRoad(Droga(src-1,dst-1,len)); }; // std::cout<<tmp<<std::endl; }; return wynik; };
void Frame::FrameClickEvents(wxCommandEvent& event) { switch(event.GetId()){ case BUTTON_CHANGE_IP:{ guiChangeIP(this, event.GetId()); break; } case wxID_EXIT:{ trayIcon->RemoveIcon(); Destroy(); break; } case BUTTON_ADD_TO_TRAY:{ Iconize(true); Show(false); break; } case MENU_INFO:{ sendDialog(wxT("This program change IP tibia client in order to connect to Open Tibia Server.\nLicense: GNU GPL\nProgrammer: Miziak.\nAdress Finder: Virtelio.\nWrote in wxWidgets library."), wxOK | wxICON_INFORMATION); break; } case MENU_CLEAR_HISTORY:{ ofstream plik(string("./history").c_str()); plik<<""; plik.close(); sb->SetStatusText(wxT("History Cleared!"),0); ip->SetValue(wxT("")); ip->Clear(); break; } } }
EnemyParser::EnemyParser(GameMaster *mistrzGry) { this->mistrzGry = mistrzGry; aktualnaGrupa = -1; bylBlad = false; QFile plik(PLIK_PRZECIWNIKOW); if(!plik.open(QIODevice::ReadOnly)) { trescBledu = QString::fromUtf8( "Nie udało się wczytać pliku"); bylBlad = true; return; } QTextStream wejscie(&plik); bylBlad = wczytajDane(&wejscie); plik.close(); if(!bylBlad && aktualnaGrupa != -1 && !mistrzGry->enemyGroups_.contains(aktualnaGrupa)) { trescBledu = QString::fromUtf8("Grupa nie może być pusta.\n Pusta jest grupa: ") + aktualnaGrupa; bylBlad = true; } }
QString Plik::odczyt_z_pliku() { qDebug() << "[Plik::odczyt_z_pliku()]"; QFile plik(sciezka); tekst=""; if(!plik.open(QIODevice::ReadOnly | QIODevice::Text)) { qDebug() << "Nie można było otworzyc pliku do odczytu\n"; // QMessageBox::warning( // this, // QObject::tr("Hello World"), // "Wystąpił błąd w dostępie do pliku" // ); return tekst; } QTextStream in (&plik); tekst = in.readAll(); qDebug() << "Wczytano Następujące Dane z Pliku:\n"; qDebug() << tekst << "\n"; plik.flush(); plik.close(); return tekst; }
//funkcja zapisujaca okno do pliku void ZapiszOkno() { int numer; //numer okna do zapisania cout << "Podaj numer okna do zapisania: "; cin >> numer; //wczytanie numeru okna cin.ignore(1000, '\n'); //ignorowanie nastepnych znakow if(numer<=0 || numer>(int)okna.size()) //sprawdzenie numeru { cout << "Niewlasciwy numer, nie zapisano zadnego okna. Nacisnij ENTER."; while(cin.get()!='\n') continue; //zignorowanie nastepnych znakow return; //powrot do menu }//if string nazwa; cout << "Podaj nazwe dla pliku z oknem: "; cin >> nazwa; ofstream plik(nazwa.c_str()); //stworzenie pliku o podanej nazwie (*(okna[numer-1])).Write(plik); //zapisanie danych do pliku plik.close(); //zamknięcie pliku }//void ZapiszOkno()
//------------------------------------------------------------------------------ bool GeoDat::wypisz_plik (const string &fileName, const string &sep) { ofstream plik(fileName.c_str()); if (!plik.is_open()) return false; wypisz (plik,sep); plik.close(); return true; }
void Log::pokaz(){ std::ifstream plik(this->nazwaPliku); std::string linia; while (std::getline(plik, linia)) { std::cout << linia << std::endl; } plik.close(); }
int main (void){ ofstream plik("wyniki.txt", ios_base::out); //InversiveGenerator (_MIN, _MAX, _SEED, _a, _b) //LinearGenerator (_MIN, _MAX, _SEED, _a, _b) //BBS (_p, _q, _MIN, _SEED) InversiveGenerator inwersyjny(0, 17, 0, 5, 1); LinearGenerator liniowy(0, 16, 0, 5, 1); BBS blum (11,11,0,5); cout << "\tICG\tLCG\tBBS" << endl; cout << "Min\t" << inwersyjny.getMin() << "\t" << liniowy.getMin() << "\t" << blum.getMin() << endl; cout << "Max\t" << inwersyjny.getMax() << "\t" << liniowy.getMax() << "\t" << blum.getMax() << endl; cout << "Seed\t" << inwersyjny.getSeed() << "\t" << liniowy.getSeed() << "\t" << blum.getSeed() << endl; cout << "I\t" << inwersyjny.getA() << "\t" << liniowy.getA() << "\t" << blum.getP() << endl; cout << "II\t" << inwersyjny.getB() << "\t" << liniowy.getB() << "\t" << blum.getQ() << endl; cout << endl << "Wylosowane liczby:" << endl; cout << "Generator liniowy:\t"; for (int i = 0; i < 10; i++) liniowy.print(); cout << endl; cout << "Generator inwersyjny:\t"; for (int i = 0; i < 10; i++) inwersyjny.print(); cout << endl; cout << "Generator Blum Blum Shub:\t"; for (int i = 0; i < 10; i++) blum.print(); cout << endl; cout << "Testy:" << endl; liniowy.setSeed(0); inwersyjny.setSeed(0); blum.setSeed(5); Test * array [] = { new statTest(&inwersyjny), new statTest(&liniowy), new statTest(&blum), new autoTest(&inwersyjny), new autoTest(&liniowy), new autoTest(&blum), new runsTest(&inwersyjny), new runsTest(&liniowy), new runsTest(&blum)}; for (int i = 0; i < 9; i++) { array[i]->runTest(); array[i]->displayResult(plik); } plik.close(); return 0; }
int main(int argc, char* argv[]) { slownik slowole; if (2 <= argc) { std::ifstream plik(argv[1]); plik >> slowole; if (3 <= argc){ std::ofstream wyplik(argv[2]); wyplik << slowole; } }
//------------------------------------------------------------------------------ bool GeoDat::wczytaj_plik(const string &fileName, const string &sep, bool sred) { ifstream plik(fileName.c_str()) ; if (plik.is_open()) { wczytaj (plik, sep, sred); plik.close(); return true; } return false; }
void Game::load_from_file() { std::stringstream ss; ss << current_level << ".lev"; std::ifstream plik(ss.str()); std::string name_and_args; while(std::getline(plik, name_and_args)) { auto pos = name_and_args.find_first_of(' '); if(!name_and_args.empty() && name_and_args.substr(0, pos) != "#") push_to_container(make_entity(name_and_args.substr(0, pos), name_and_args.substr(pos))); } }
void wczytaj(){ ifstream plik("dupa.txt"); pos=0; while(!plik.eof()){ char temp[256]; plik >> temp; if(plik.eof()) return; char * napis=new char[strlen(temp)+1]; strcpy( napis,temp); if( pos >= cursize) resize( cursize*2+1); tab[pos++]=napis; } }
knapsack_data load() { std::ifstream plik("data.txt"); knapsack_data d; int i=0; plik>>d.c; plik>>d.n; //int *price, *weight; d.value = (int*)calloc(d.n,sizeof(int)); d.weight = (int*)calloc(d.n,sizeof(int)); while(!plik.eof()){ plik >> d.value[i] >> d.weight[i]; i++; } return d; }
ItemParser::ItemParser(GameMaster *mistrz) { this->mistrzGry = mistrz; aktualnaGrupa = ""; bylBlad = false; QFile plik(PLIK_PRZEDMIOTOW); if(!plik.open(QIODevice::ReadOnly)) { trescBledu = QString::fromUtf8("Nie udało się wczytać pliku"); bylBlad = true; return; } QTextStream wejscie(&plik); bylBlad = wczytajDane(&wejscie); plik.close(); }
void print (){ std::ifstream plik("database.dat"); if(plik) { std::ofstream saveFile ("Savedatabase.txt"); std::string textToSave; saveFile << textToSave; saveFile.close(); } else { mvprintw(2,1,"Error: File not found."); } }
/* Metoda wype³niaj¹ca mapê stworzon¹ w metodzie createMap. */ void Map::FillMap(std::string filename, std::string tilesetpath) { std::ifstream plik(filename); if(!tileSet.loadFromFile(tilesetpath)) throw DataNotLoaded("Nie znaleziono fragmentow mapy!"); // Ustawiwanie texturey jako tileset, znajduj¹ siê w niej wszystkie podstawowe sprity mapy - skrzynka, pod³oga, œciana spriteTile.setTexture(tileSet); if (plik.is_open()) { // Do momentu, a¿ nei skoñczy siê plik map bêdziemy wczytywaæ dane i tworzyæ mapê while (!plik.eof()) { //Pojedynczy ci¹g znaków wczytywany jest jako string x.x std::string spritestr; plik >> spritestr; // sprawdzanie, czy zapis w mapie jest poprawny, jezeli nie to rzucony jest wyj¹tek - B³êdny plik char x = spritestr[0], y = spritestr[2]; if (!isdigit(x) || !isdigit(y)) throw DataNotLoaded("B³êdne dane w pliku!"); else // jezeli dane s¹ poprawne to zapisujemy do mapy pod wspó³rzêdne loadcounter.x/y wartoœæ // która bêdzie reprezenowana przez te wspó³rzêdne w pliku spritów map[loadCounter.x][loadCounter.y] = sf::Vector2i(x - '0', y - '0'); if (plik.peek() == '\n') { // je¿eli dochodzimy do koñca lini zwiêkszana jest wspó³rzêdna y, a zerowana x loadCounter.x = 0; loadCounter.y++; } else // w przeciwnym wypadku zwiêkszamy x, poniewa¿ jest to kolejna sekwencja wspó³rzêdnych sprita loadCounter.x++; } loadCounter.y++; } else // je¿eli nie uda³o nam siê otworzyæ pliku, zostaje wyrzucony wyj¹tek. throw DataNotLoaded("Nie mozna otworzyc pliku!");
void bootSector::on_bootSector_accepted() { if (this->modified==0) { return; } //save boot sector this->image->prepareForModify(); //Now the image supplies us modified path to temp file. //patch the image file with a new sector held in this->sectorData. QFile plik(this->image->getCurrentPath()); if (!plik.open(QIODevice::ReadWrite)) { QMessageBox::critical(this,"Error","Image data cannot be opened for writing!"); } plik.seek(this->offset); plik.write(this->sectorData); plik.close(); this->image->forceModified(1); //QMessageBox::critical(this,"Error","File "); }
void Plik::zapis_do_pliku() { qDebug() << "[Plik::zapis_do_pliku()]"; QFile plik(sciezka); if(!plik.open(QIODevice::WriteOnly | QIODevice::Text | QIODevice::Truncate)) { qDebug() << "Nie można było otworzyć pliku o zapisu\n"; return; } QTextStream out (&plik); qDebug()<<"Wpisuje następujący tekst do pliku: "<<endl; qDebug()<<tekst; out << tekst; qDebug() << "Wczytano Następujące Dane z Pliku:\n"; qDebug() << tekst << "\n"; plik.flush(); plik.close(); return; }
int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); QStringList args = QCoreApplication::arguments(); if(args.size() < 4) { std::cerr << "Za mało parametrów" << std::endl; exit(2); } Server server; QVector<Server> servers; server.ip = QHostAddress(args.at(1)); server.port = args.at(2).toInt(); servers.push_back(server); Client client; client.setServers(&servers); //sprawdzenie parametrów wywołania if(args.at(3) == "upload") { QString data; QFile plik(args.at(4)); data = plik.readAll().toBase64(); if(client.send(QStringList() << "UPLOAD" << data) == NO_SERVERS) { std::cout << "nie można się z niczym połączyć lub nikt nie akceptuje zapytań\n"; a.exit(10); } } else if(args.at(3) == "insert") { QStringList columns; for(int i=5; i<args.size(); ++i) { columns << args.at(i); } if(client.send(QStringList() << "INSERT" << args.at(4) << columns) == NO_SERVERS) { std::cout << "nie można się z niczym połączyć lub nikt nie akceptuje zapytań\n"; a.exit(10); } } else if(args.at(3) == "attach") { QString data; QFile plik(args.at(4)); data = plik.readAll().toBase64(); if(client.send(QStringList() << "ATTACH" << args.at(4) << data) == NO_SERVERS) { std::cout << "nie można się z niczym połączyć lub nikt nie akceptuje zapytań\n"; a.exit(10); } } else if(args.at(3) == "delete") { if(client.send(QStringList() << "DELETE" << args.at(4) << args.at(5)) == NO_SERVERS) { std::cout << "nie można się z niczym połączyć lub nikt nie akceptuje zapytań\n"; a.exit(10); } } else if(args.at(3) == "unlink") { if(client.send(QStringList() << "UNLINK" << args.at(4) << args.at(3)) == NO_SERVERS) { std::cout << "nie można się z niczym połączyć lub nikt nie akceptuje zapytań\n"; a.exit(10); } } else{ std::cerr << "Nieznany błąd" << std::endl; exit(11); } return a.exec(); }
void wypisz(){ ofstream plik("dupa.txt"); for(int i=0;i<pos;i++) plik << tab[i] << endl; }
void algorytmLosowy(const Generator& generator, int tablica[]) { vector<Zadanie*> zadania = generator.zadania; //tymczasowa tablica do usuwania zadañ Zadanie* tmp; //wskaŸnik do zamieniania miejscami w wektorze Maszyna* maszyna; //wskaŸnik na preferowan¹ maszynê ofstream plik("dla_poprawy_od_kroku.txt"); int zadanie = zadania.size()-1; //zadanie do wykonania int preferred; //preferowana maszyna int czas[3] = {0,0,0}; //obecny kwant czasu na danej maszynie int przestoj[3] = {0,0,0}; //numer nastêpnego przestoju bool koniec_przestojow[3] = {false, false, false}; while (zadania.size() != 0) { zadanie = zadania.size()-1; //przegl¹damy wektor od koñca //wybieramy najmniej zawalon¹ maszynê int a = czas[0]; int b = czas[1]; int c = czas[2]; if(a<=b && a<=c) preferred = 0; else if(b<=a && b<=c) preferred = 1; else preferred = 2; while(zadania.size() != 0) //póki czegoœ nie wsadzisz i nie trzeba wybieraæ znowu maszyny losuj zadania { maszyna = generator.maszyny[preferred]; if( maszyna->rozpoczecie[przestoj[preferred]] == czas[preferred] && !koniec_przestojow[preferred]) //je¿eli pierwszy niewykonany przestój ju¿ siê zacz¹³ { czas[preferred] += maszyna->dlugosc[przestoj[preferred]]; //dodajemy ten przestój oraz if(przestoj[preferred] < maszyna->rozpoczecie.size()-1) //przechodzimy na nastêpny przestój je¿eli jakiœ zosta³ ++przestoj[preferred]; else koniec_przestojow[preferred]=true; } if ( (!zadania[zadanie]->operacje[0]->done) && (czas[preferred]>=zadania[zadanie]->delay)) //wsadŸ pierwsz¹ je¿eli min¹³ czas gotowoœci //generator.czyWejdzie(*maszyna, *zadania[zadanie]->operacje[0],czas)) { if( maszyna->rozpoczecie[przestoj[preferred]] < (czas[preferred]+zadania[zadanie]->operacje[0]->czas) && !koniec_przestojow[preferred]) //je¿eli pierwszy niewykonany przestój ju¿ siê zacz¹³ { czas[preferred] += maszyna->dlugosc[przestoj[preferred]]; //dodajemy ten przestój oraz if(przestoj[preferred] < maszyna->rozpoczecie.size()-1) //przechodzimy na nastêpny przestój je¿eli jakiœ zosta³ ++przestoj[preferred]; else koniec_przestojow[preferred]=true; czas[preferred] += zadania[zadanie]->operacje[0]->czas * 0.3; //wyw³aszczanie } maszyna->uszeregowanie.push_back(zadania[zadanie]->operacje[0]); //wtykamy operacjê do uszeregowania zadania[zadanie]->operacje[0]->begin = czas[preferred]; //uk³adamy czas rozpoczêcia czas[preferred] += zadania[zadanie]->operacje[0]->czas; //dodajemy czas operacji do bierz¹cego zadania[zadanie]->operacje[0]->maszyna = maszyna; //ustawiamy gdzie jest dana operacja zadania[zadanie]->operacje[0]->done = true; //okreœlamy operacjê jako wykonan¹ break; //wychodzimy z pêtli, szukamy najmniej zawalonej maszyny } else if( !(zadania[zadanie]->operacje[1]->done) && (zadania[zadanie]->operacje[0]->done))//druga //je¿eli drugia operacja jeszcze nie zosta³a rozpoczêta a pierwsza zakoñczy³a siê przed chwil¹ obecn¹ { if(zadania[zadanie]->operacje[0]->maszyna == maszyna) //je¿eli maszyna jest ta sama co pierwszego zadania { //to j¹ zmieniamy na inn¹ wybierz(preferred); maszyna = generator.maszyny[preferred]; } if(generator.czyMozna(*zadania[zadanie]->operacje[1],czas[preferred])) { if( !koniec_przestojow[preferred] && maszyna->rozpoczecie[przestoj[preferred]] < (czas[preferred]+zadania[zadanie]->operacje[1]->czas)) //je¿eli pierwszy niewykonany przestój ju¿ siê zacz¹³ { czas[preferred] += maszyna->dlugosc[przestoj[preferred]]; //dodajemy ten przestój oraz if(przestoj[preferred] < maszyna->rozpoczecie.size()-1) //przechodzimy na nastêpny przestój je¿eli jakiœ zosta³ ++przestoj[preferred]; else koniec_przestojow[preferred]=true; czas[preferred] += zadania[zadanie]->operacje[1]->czas * 0.3; //wyw³aszczanie } zadania[zadanie]->operacje[1]->begin = czas[preferred]; czas[preferred] += zadania[zadanie]->operacje[1]->czas; zadania[zadanie]->operacje[1]->maszyna = maszyna; zadania[zadanie]->operacje[1]->done = true; maszyna->uszeregowanie.push_back(zadania[zadanie]->operacje[1]); break; } } else if((zadania[zadanie]->operacje[1]->done)) //sprawdzenie czy 2 operacja zosta³a wykonana { if(!zadania[zadanie]->operacje[2]->done) //trzecia operacja { if(zadania[zadanie]->operacje[0]->maszyna == maszyna || //je¿eli operacja le¿y na maszynie na której by³a wykonana poprzednia op zadania[zadanie]->operacje[1]->maszyna == maszyna) { preferred = wybierz(zadania[zadanie]->operacje[0]->maszyna->numer, zadania[zadanie]->operacje[1]->maszyna->numer); //POPRAW maszyna = generator.maszyny[preferred]; //szukamy innej maszyny } if(generator.czyMozna(*zadania[zadanie]->operacje[2],czas[preferred])) { if(!koniec_przestojow[preferred] && maszyna->rozpoczecie[przestoj[preferred]] < (czas[preferred]+zadania[zadanie]->operacje[2]->czas)) //je¿eli pierwszy niewykonany przestój ju¿ siê zacz¹³ { czas[preferred] += maszyna->dlugosc[przestoj[preferred]]; //dodajemy ten przestój oraz if(przestoj[preferred] < maszyna->rozpoczecie.size()-1) //przechodzimy na nastêpny przestój je¿eli jakiœ zosta³ ++przestoj[preferred]; else koniec_przestojow[preferred]=true; czas[preferred] += zadania[zadanie]->operacje[2]->czas * 0.3; //wyw³aszczanie } //cout<<"pyk"<<endl; zadania[zadanie]->operacje[2]->begin = czas[preferred]; czas[preferred] += zadania[zadanie]->operacje[2]->czas; zadania[zadanie]->operacje[2]->maszyna = maszyna; zadania[zadanie]->operacje[2]->done = true; bool flaga = zadania[0]->operacje[2]->done; maszyna->uszeregowanie.push_back(zadania[zadanie]->operacje[2]); tmp = zadania[zadanie]; //wymieniamy z ostatnim zadaniem w wektorze do usuwania zadania[zadanie] = zadania[zadania.size()-1]; zadania[zadania.size()-1] = tmp; zadania.pop_back(); //usuwamy zadanie, bo wszystkie jego operacje zosta³y wykonane break; } } } if(zadanie>0) //je¿eli nie dojechaliœmy do pocz¹tku wektora zadañ zadanie--; else // a je¿eli tak to losujemy now¹ maszynê { zadanie = zadania.size()-1; //wpychanie zapychacza if(maszyna->uszeregowanie.size()>0) //je¿eli uszeregowanie zawiera wiêcej ni¿ jedn¹ operacjê { if(maszyna->uszeregowanie[maszyna->uszeregowanie.size()-1]->numer>3) //i jest to zapychacz maszyna->uszeregowanie[maszyna->uszeregowanie.size()-1]->czas += 1; //to zwiêksz jego czas o jeden else{ Operacja *op = new Operacja(1,98,NULL,98); //deklaracja zapychacza op->begin=czas[preferred]; maszyna->uszeregowanie.push_back(op); } } else{ Operacja *op = new Operacja(1,98,NULL,98); //deklaracja zapychacza op->begin=czas[preferred]; maszyna->uszeregowanie.push_back(op); //albo dodaj jako now¹ operacjê nowy zapychacz } czas[preferred] += 1; wybierz(preferred); } }} int dlugosc = 0, dlugoscRealna = 0; //do obliczania w³aœciwej d³ugoœci uszeergowania for (int i=0; i<3; i++) { //generator.czysc(*generator.maszyny[i]); //usuwanie œmieci z koñca uszeregowania //generator.zlacz(generator.maszyny[i]->uszeregowanie); //cout << "NR " << i << " MASZYNA:" << endl<<"------"<<endl; plik << "NR " << i << " MASZYNA:" << endl<<"------"<<endl; for (int j=0; j<generator.maszyny[i]->uszeregowanie.size(); j++) { // cout << "OP = " << (generator.maszyny[i]->uszeregowanie[j]->numer)+1 // << "\t\tZAD = " << (generator.maszyny[i]->uszeregowanie[j]->nrZadania)+1 // << "\t\tCZAS = " << generator.maszyny[i]->uszeregowanie[j]->czas << endl<<endl; plik << "OP = " << (generator.maszyny[i]->uszeregowanie[j]->numer)+1 << "\t\tZAD = " << (generator.maszyny[i]->uszeregowanie[j]->nrZadania)+1 << "\t\tCZAS = " << generator.maszyny[i]->uszeregowanie[j]->czas << endl<<endl; } int ostatni=generator.maszyny[i]->uszeregowanie.size()-1; dlugosc = generator.maszyny[i]->uszeregowanie[ostatni]->begin + generator.maszyny[i]->uszeregowanie[ostatni]->czas; dlugoscRealna = (dlugoscRealna > dlugosc) ? dlugoscRealna : dlugosc; } int x=optymalnadlugosc(generator); plik<<"////////////// ALGORYTM LOSOWY ///////////////////"<<endl; cout<<"Szacowana optymalna dlugosc uszeregowania "<< generator.dlugoscInstancji/3 <<endl; //plik<<"Szacowana optymalna dlugosc uszeregowania "<< generator.dlugoscInstancji/3 <<endl; cout<<"Obliczona optymalna dlugosc uszeregowania "<< x <<endl; //plik<<"Obliczona optymalna dlugosc uszeregowania "<< x <<endl; cout<<"Dlugosc rzeczywista generowana przez algorytm "<<dlugoscRealna<<endl; //plik<<"Dlugosc rzeczywista generowana przez algorytm "<<dlugoscRealna<<endl; cout<<"Procent: "<<(float)dlugoscRealna/(x)<<endl; //plik<<"Procent: "<<(float)dlugoscRealna/(x)<<endl; tablica[0]=x; tablica[1]=dlugoscRealna; plik.close(); }