Kód: Vybrat vše
//Opakovat, dokud nebyly projity všechny webové stránky (indexy v proměnném poli "weby"):
for(byte indexWeby = 0; weby.get(indexWeby).equals("konec") == false; indexWeby++){
try {
inter = new Internet(weby.get(indexWeby));
System.out.println("Vytvářím databázi dle předlohy www stránky \""+weby.get(indexWeby)+"\"");
} catch (IOException výjimka) {
System.err.println();
soubor.připiš(výjimka.toString(), cestaKsouboru+výjimky, "chyba zápisu!");
return stav = false;
}
try {
//Přidání obsahu webové stránky (html5 kódy) do Stringu:
obsah.append(data.přečtiObsahLogicky(inter.vraťPřipojení(), musíObsahovat));
inter = null;
} catch (IOException | URISyntaxException výjimka) {
System.err.println("Mali");
soubor.připiš(výjimka.toString(), cestaKsouboru+výjimky, "chyba zápisu!");
return stav = false;
}
/**Získávání odkazů z každé webové stránky databáze:*/
//Opakovat, dokud se nezapsali všechny aplikace z databáze do daného souboru:
while(sb.obsahuje(obsah, začOdkaz) == true){
sb.odstraňZačátek(obsah, začOdkaz);
obsah.delete(0, začOdkaz.length());
try {
if(sb.kdyObsahuje(obsah, musíObsahovat) < obsah.length()){
System.out.println("P 1.");
indexApp = Short.valueOf(obsah.substring(0, sb.kdyObsahuje(obsah, "&")));
//Pokud databáze ("má") neobsahuje vícekrát informace o stejné aplikaci:
if(indexApp != posledníOdkaz && obsah.substring(0, sb.kdyObsahuje(obsah, konOdkaz)).endsWith("#systemrequirements") == true){
System.out.println("Podmínka 2!");
soubor.vytvořSoubor(celýNázSoubor);
soubor.zapiš(obsah.substring(0, sb.kdyObsahuje(obsah, konOdkaz)).replace(musíObsahovat, "]").replace(" ", "").toLowerCase(),
celýNázSoubor, "Výjimka!");
posledníOdkaz = indexApp;
inter = new Internet("http://www.game-debate.com/games/index.php?g_id="+indexApp);
obsahHardware.append(data.přečtiObsah(inter.vraťPřipojení()));
inter = null;
//Naplnění Stringu pro pozdější hledání hardwarů v nich (tato akce platí pouze, když daný údaj ona webová stránka obsahuje):
proRam.append(obsahHardware.substring(sb.kdyObsahuje(obsahHardware, začRam)));
proCpu.append(obsahHardware.substring(sb.kdyObsahuje(obsahHardware, začCpu)));
hdd.append(obsahHardware.substring(sb.kdyObsahuje(obsahHardware, začHdd)));
proDirectx.append(obsahHardware.substring(sb.kdyObsahuje(obsahHardware, začDirectx)));
System.out.println("prodir: "+proDirectx);
os.append(obsahHardware.substring(sb.kdyObsahuje(obsahHardware, začOs)));
proGpu.append(obsahHardware.substring(sb.kdyObsahuje(obsahHardware, začGpu)));
//Zjišťování a následné přidání do StringBuilderu - pro pozdější zapsání do souboru - informace o minimální velikosti RAM.
while(sb.obsahuje(proRam, začRam) == true){
sb.odstraňZačátek(proRam, začRam);
ram.add(proRam.substring(0, sb.kdyObsahuje(proRam, " GB")));
sb.odstraňZačátek(proRam, "</span>");
}
proRam.setLength(0);
//Zjišťování obsahžených grafických karet ve zdrojových kódech databáze:
while(sb.obsahuje(proGpu, začGpu) == true){
sb.odstraňZačátek(proGpu, začGpu);
if(proGpu.substring(0, 250).contains(konGpu) == true){
grafKarty.add((proGpu.substring(0, sb.kdyObsahuje(proGpu, "\" title=")).replace(začGpu, ""))+"&");
sb.odstraňZačátek(proGpu, konGpu);
}
else{
proGpu.deleteCharAt(0);
}
}
proGpu.setLength(0);
//Vyjmutí z databáze informací o minimalním rozhraní DirectX:
while(sb.obsahuje(proDirectx, začDirectx) == true){
sb.odstraňZačátek(proDirectx, začDirectx);
directx.add(proDirectx.substring(0, sb.kdyObsahuje(proDirectx, "</span>")));
System.out.println("directx: "+proDirectx.substring(0, 1000));
sb.odstraňZačátek(proDirectx, "</span>");
}
proDirectx.setLength(0);
//Zjištění informace ohledně místa volného na úložném zařízení:
if(hdd.length() > 250 && sb.obsahuje(hdd, začHdd) == true){
sb.odstraňKonec(hdd, "</span>");
}
//Zjišťování informace o operačním systému:
if( os.length() > 250 && sb.obsahuje(os, začOs) == true){
sb.odstraňKonec(os, "</span>");
}
//Zjistit, zda obsah www stránky určený ve Stringu "proCpu", obsahuje pro mě nějaká užitečná data.
while(sb.obsahuje(proCpu, konCpu) == true){
//Vyhledávání procesorů v textovém řetězci "proCpu":
sb.odstraňZačátek(proCpu, začCpu);
if(proCpu.substring(0, 250).contains(konCpu) == true){
procesory.add((proCpu.substring(0, sb.kdyObsahuje(proCpu, konCpu)).replace(začCpu, ""))+"&");
sb.odstraňZačátek(proCpu, konCpu);
}
else{
proCpu.deleteCharAt(0);
}
}
proCpu.setLength(0);
procesory.trimToSize();
//Zapsání údajů z webové stránky do určeného souboru:
soubor.novýŘádek(celýNázSoubor);
soubor.připiš("procesory: "+procesory.toString(), celýNázSoubor, "Výjimka");
soubor.novýŘádek();
soubor.připiš("grafické karty: "+grafKarty.toString(), celýNázSoubor, "Výjimka");
soubor.novýŘádek();
soubor.připiš("operační paměť: ", celýNázSoubor, "Výjimka");
if(ram.size() != 0){
soubor.připiš(ram.toString().replace(začRam, ""), celýNázSoubor, "Výjimka");
}
else{
soubor.připiš("null", celýNázSoubor, "Výjimkas");
}
soubor.novýŘádek();
soubor.připiš("nutné místo na disku: ", celýNázSoubor, "Výjimkas");
if(hdd.length() > 0 && sb.obsahuje(hdd, začHdd) == true){
soubor.připiš(hdd.toString().replace(začHdd, ""), celýNázSoubor, "Výjimkas");
}
else{
soubor.připiš("null", celýNázSoubor, "Výjimkas");
}
soubor.novýŘádek();
soubor.připiš("directx: ", celýNázSoubor, "Výjimka");
if(directx.size() != 0){
soubor.připiš(directx.toString().replace(začDirectx, ""), celýNázSoubor, "Výjimka");
}
else{
soubor.připiš("null", celýNázSoubor, "Výjimka");
}
soubor.novýŘádek();
soubor.připiš("operační systém: ", celýNázSoubor, "Výjimka");
if(os.length() > 0 && sb.obsahuje(os, začOs) == true){
soubor.připiš(os.toString().replace(začOs, ""), celýNázSoubor, "Výjimka");
}
else{
soubor.připiš("null", celýNázSoubor, "Výjimkas");
}
//Zvýšení indexu u proměnné "názevSouboru" pro následnou tvorbu souboru nového:
názevSouboru++;
celýNázSoubor = cestaKsouboru+aplikace+File.separatorChar+(názevSouboru+".txt");
}
hdd.setLength(0);
os.setLength(0);
directx.clear();
obsahHardware.setLength(0);
ram.clear();
procesory.clear();
grafKarty.clear();
} }catch (IOException | URISyntaxException výjimka) {
System.err.println("Výjimka!");
výjimka.printStackTrace();
soubor.připiš(výjimka.toString(), cestaKsouboru+výjimky, "chyba zápisu!");
return stav = false;
}
//Pomínky sloužící pro projití i aplikací z minulých let:
if(weby.get(indexWeby).contains("year=") && rok >= rok - 14){
//Starší ročník počítačových her:
if(weby.get(indexWeby).contains("list=software") == false){
weby.remove(indexWeby);
weby.add((indexWeby), "http://www.game-debate.com/games/index.php?year="+(rok-=1));
}
//Starší ročník ostatních softwarů:
else{
weby.remove(indexWeby);
weby.add(indexWeby,"http://www.game-debate.com/games/index.php?list=software&year="+(rok-=1));
}
indexWeby -= 1;
}
//Pokud byli projity všechny aplikace daného druhu:
if(rok == (nynRok - 14)){
rok = nynRok;
indexWeby += 1;
}
}
obsah.setLength(0);
System.out.println("SMAZÁN OBSAH!");
}
začOdkaz = null;
konOdkaz = null;
musíObsahovat = null;
začCpu = null;
konCpu = null;
začHdd = null;
začGpu = null;
konGpu = null;
začDirectx = null;
začRam = null;
začOs = null;
proCpu = null;
hdd = null;
proDirectx = null;
proRam = null;
os = null;
proGpu = null;
ram = null;
directx = null;
grafKarty = null;
obsahHardware = null;
procesory = null;
System.gc();
PS: Co máš na mysli tím "Java to umožňuje, ale aplikace ne." - Vždyť aplikace vlastně "běží" na Javě. Prosím o upřesnění.