Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- maniplulisanje file-ovima
- */
- #ifdef _MSC_VER
- #define _CRT_SECURE_NO_WARNINGS
- #endif
- #include <iostream>
- #include <fstream>
- using namespace std;
- char crt[] = "\n--------------------------------------------------\n";
- int brMjesta()
- {
- std::system("cls");
- int temp = 0;
- cout << "Za koliko mjesta zelite pomjeriti pokazivac: ";
- cin >> temp;
- return temp;
- }
- char * unosteksta()
- {
- system("cls");
- char tempunos[10000];
- cout << crt << "Unesite tekst: (# - za kraj unosa)" << crt;
- cin.ignore();
- cin.getline(tempunos, 10000, '#');
- char * tekst = new char[strlen((tempunos)+1)];
- strcpy(tekst, tempunos);
- return tekst;
- }
- char * imeFajla()
- {
- std::system("cls");
- char tempnaziv[100];
- cout << crt << "Unesite naziv file-a: " << endl;
- cin >> tempnaziv;
- strcat(tempnaziv, ".txt");
- char * ime = new char[strlen(tempnaziv) + 1];
- strcpy(ime, tempnaziv);
- std::system("cls");
- return ime;
- }
- void pauza()
- {
- cout << "Pritisnite ENTER za nastavak: ";
- char tipka;
- cin.get(tipka);
- cin.ignore(10000, '\n');
- }
- // *******************************
- void meni()
- {
- cout << crt << "----------------- :: MENI :: -----------------" << crt;
- cout << "\t1. Upisi sadrzaj u fajl: \n\t2. Prikazi sadrzaj fajla: \n\t3. Dodaj novi sadrzaj u fajl: \n\t4. Kopiraj fajl u drugi fajl: \n\t5. Pretrazi sadrzaj fajla - karakter:\n";
- cout << "\t6. Pretrazi sadrzaj fajla: \n\t7. Prikazi velicinu fajla: \n\t8. Izbrisi sadrzaj fajla: \n\t9. Rad sa novim fajlom: \n\t10. Izadji iz programa: " << crt;
- }
- void upisiSadrzaj(ofstream & upis)
- {
- system("cls");
- if (upis.fail()) cout << "GRESKA!!!!\n";
- else
- {
- upis << unosteksta();
- }
- }
- void prikaziSadrzaj(ifstream & ispis)
- {
- system("cls");
- if (ispis.fail())cout << "GRESKA!!!!\n";
- else
- {
- cout << crt << "Vas file izgleda ovako: " << crt;
- char znak;
- while (ispis.get(znak))
- cout << znak;
- cout << crt;
- }
- pauza();
- }
- char * dohvatiSadrzaj(ifstream & ispis)
- {
- char tempNiz[10000];
- int brojac = 0;
- if (!ispis.fail())
- {
- char znak;
- for (int i = 0; ispis.get(znak); i++)
- {
- tempNiz[i] = znak;
- brojac++;
- }
- tempNiz[brojac] = '\0';
- }
- char * sadrzaj = new char[brojac];
- strcpy(sadrzaj, tempNiz);
- return sadrzaj;
- }
- void kopirajFajl(char * ime)
- {
- char * ime2 = imeFajla();
- ofstream upis(ime2);
- /*
- if (!upis.fail())
- {
- char * sadrzaj = dohvatiSadrzaj(ispis);
- upis << sadrzaj;
- }
- upis.close();*/
- ifstream f1(ime, fstream::binary);
- ofstream f2(ime2, fstream::trunc | fstream::binary);
- f2 << f1.rdbuf();
- }
- char * pretragaRijec(ifstream & ispis)
- {
- char rijec[15];
- cout << "Unesite rijec za pretragu (max. 15 karaktera): ";
- cin >> rijec;
- char * sadrzaj = dohvatiSadrzaj(ispis);
- char * pronadjeno = strstr(sadrzaj, rijec);
- return pronadjeno;
- }
- void pretragaKarakter(ifstream & ispis)
- {
- std::system("cls");
- char znak, tempZnak;
- int brojacZnakova = 0, brojacUkupno = 0;
- cout << crt << "Unesite znak, za koji zelite saznati statistiku: ";
- cin.ignore();
- cin.get(znak);
- cin.ignore();
- cout << crt;
- while (ispis.get(tempZnak))
- {
- brojacUkupno++;
- if (znak == tempZnak) brojacZnakova++;
- }
- std::system("cls");
- cout << "U tekstu se nalazi: " << brojacUkupno << " znakova.\n";
- cout << "Trazeni znak -> " << znak << " <- se u tekstu nalazi: " << brojacZnakova << " puta!" << crt;
- pauza();
- }
- void izbrisiFajl(ifstream & ulaz, char * ime)
- {
- cout << crt;
- if (remove(ime) != 0)
- perror("Greska pri brisanju file-a!");
- else
- puts("File uspjesno obrisan!");
- cout << crt;
- pauza();
- }
- int main(){
- char * ime = imeFajla();
- int izbor;
- do {
- meni();
- cout << "Izaberi radnju: ";
- cin >> izbor;
- switch (izbor){
- case 1:{
- ofstream upis(ime);
- upisiSadrzaj(upis);
- upis.close();
- system("cls");
- break;
- }
- case 2: {
- ifstream ispis(ime);
- prikaziSadrzaj(ispis);
- ispis.close();
- break;
- }
- case 3: {
- ofstream upis(ime, ios::app);
- upisiSadrzaj(upis);
- upis.close();
- break;
- }
- case 4: {
- ifstream ispis(ime);
- kopirajFajl(ime);
- ispis.close();
- break;
- }
- case 5: {
- ifstream ispis(ime);
- pretragaKarakter(ispis);
- ispis.close();
- break;
- }
- case 6: {
- ifstream ispis(ime);
- char * pronadjeno = pretragaRijec(ispis);
- if (pronadjeno == NULL) cout << "Nije pronadjena trazena rijec!" << endl;
- else cout << crt << "Trazena rijec je pronadjena u narednom dijelu teksta: " << crt << pronadjeno << crt;
- pauza();
- ispis.close();
- break;
- }
- case 7: { std::system("cls"); ifstream upis( ime, ios::binary | ios::ate);
- cout << crt<<"Velicina file-a je: "<< upis.tellg() <<crt;
- pauza();
- break;
- }
- case 8: {
- std::system("cls"); ofstream upis(ime, ios::trunc);
- upis.close();
- cout << crt << "Sadrzaj uspjesno izbrisan!" << crt;
- pauza();
- break;
- }
- case 9: { std::system("cls");
- cout << crt << "Izaberite ime novog file-a: " << endl;
- ime = imeFajla();
- std::system("cls");
- cout << crt << "Uspjesno ste izabrali novi file!" << crt;
- pauza();
- break;
- }
- case 10:{ std::system("cls");
- cout << crt << "Izlazim iz programa. \nHvala na koristenju. :*" << crt;
- pauza();
- break;
- }
- default: { std::system("cls");
- cout << crt << "Niste unijeli valjanu opciju.\nPokusajte ponovo." << crt;
- pauza();
- break; }
- }
- std::system("cls");
- } while (izbor != 10);
- std::system("pause>null");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement