Trudności z funkcjami.

0

Witam.
Ostatnio zepsuł mi się Chrome. Wszystkie URL wyszukiwania w google zamieniły się w ipv4 i mam Error(404) Forbidden. Korzystam z Session Buddy, wyciągnąłem plik z zapisanymi sesjami. Jako że mam dużo otwartych kart postanowiłem naprawić to automatycznie.

 #include <iostream>
#include <conio.h>
#include <fstream>

using namespace std;

string fraza="ipv4";

string otwieraniepliku(string sciezka) //Funkcja służąca do otwierania pliku z sesją
{
	string plik; //Deklaracja stringa przechowywującego wiersze pliku z sesją
	ifstream pliksesji; //Utworzenie "uchwytu" dla pliku z sesją
	pliksesji.open("sciezka"); //Otwieranie pliku z sesją o podanej ścieżce (pod. przez użyt)
	if(pliksesji.good()==true) //Instrukcja warunkowa sprawdzająca czy plik udało się otworzyć czy też nie
	{ //Wchodzi tutaj jeśli funcja good() zwraca wartość logiczną "true"
		while(!pliksesji.eof())
		{
		getline(pliksesji, plik); //Pobiera jeden wiersz z pliku i zapisuje do string plik
		}
	} return 0;
	return plik; //Zwraca zawartość stringu plik dla kolejnych funkcji
}

int szukanafraza(string plik, string fraza) //Deklaracja funkcji służącej do obliczania ile razy występuje dana fraza
{
	int n;
	int ilerazy=0; //Deklaracja zmiennej przechowywującej ilość występowania frazy
	for(int x=0; x<plik.length(); x++) //Pętla for. W 1-wszej części deklaracji następuje inicjalizacja zmiennych. W 2-giej warunek końcący pętle for(jeżeli x będzie większe od długości stringu plik to pętla się przerwie). 3-cia część zwiększa licznik pętli
	{ //Wnętrze pętli wykonywujące się x-razy(ilość wykonań pętli zależy od wartości x zmiennej w programie)
		int y=0; //Deklaracja zmiennej y i inicjalizowanie jej na wartość 0
		if(fraza[y]==plik[x]) //Instrukcja warunkowa if. W if-ie zawarty jest warunek(jeżeli pierwszy element stringu fraza(y=0;typ[0]=pierwszy element) jest równy pierwszemu elementowi stringu plik to wejdź w instrukcje)
		{ //Program wchodzi tutaj jeżeli wartość instrukcji warunkowej if zwraca "true"
			for(int z=x; fraza[y]==plik[z]; z++) //Pętla for. Pierwszy element definiuje że z=x(jeżeli z=x a x=0 to z=0). Drugi element sprawdza czy resztę elementów stringu plik(czy równają się stringowi fraza; zakładając że pierwszy element jest równy)
			{ //Te instrukcje pętla wykonuje z-razy. Zależne od programu
				fraza[y++]; //Zwiększamy licznik elementów stringa fraza o +1
				if(fraza[y]==0) ilerazy++; //Jeżeli if zwraca "true" to zwiększ zmienną ilerazy o +1. Jeżeli zwróci "false" to robi do skutku
				if(ilerazy<=0==true)
				{
					n=0;
				} else n=1;
			}
		}
	}
	return ilerazy - n; //Zwraca wartość zmiennej ilerazy zmniejszoną o -1
}

int main()
{
	
}

Zrobiłem program który jest w stanie policzyć ile razy występuje w całym pliku "ipv4". Ale jest problem ze ścieżką i otwarciem pliku. W mojej głowie zrodził się pomysł żeby zaimplementować "naprawę tych errorów".Tak wygląda zepsuty URL https://ipv4.google.com/sorry/IndexRedirect?continue=https://www.google.pl/search%3Fq%3Dinstalacja%2Bmysql%2Bubuntu%26bav%3Don.2,or.%26cad%3Db%26biw%3D779%26bih%3D758%26dpr%3D1%26ion%3D1%26ech%3D1%26psi%3DA89_V7qQDseisgGIkYWYCg.1467993838074.3%26ei%3DA89_V7qQDseisgGIkYWYCg%26emsg%3DNCSR%26noj%3D1&q=CGMSBFME060Yh_bMvQUiGQDxp4NLaInb4sZFuBmxxJkFLt1QGuN1zQ0 więc należy wczytywać linijki adresów, każdą tą linijkę sprawdzać na obecność frazy "ipv4", następnie skopiować tekst jaki jest międzi %3D a %2B a %2B, "dokleić" do prawidłowego https://www.google.pl/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q="tekst"+"skopiowany" i zastąpić w aktualnie wczytanej linijce "zepsuty URL" na "zdrowy". To wszystko w pętelce aż do końca pliku. Dobrze myślę? I co z tą ścieżką?

0

Zrób sobie tą przyjemność i napisz to w pythonie...

0

Ok. Rozwiązałem. W funkcji otwieraniepliku() po if-ie zamiast return 0; to return "";. Pomogło. Czyta pliki bez błędów. Temat do zamkniecia.

1 użytkowników online, w tym zalogowanych: 0, gości: 1