Diskuze: Problem se ctenim ze souboru
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 19 zpráv z 19.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.


No nechal jsem si chybu vypsat prikazem
e.getLocalizedMessage()
takze problem byl ve spatnem umisteni souboru, moje chyba ze jsem si toho
nevsimnul.
Jenze ted se objevila jina chyba a to takova ze mi nejak nejede vlakno s botem

Na kontrolu chyb je skvělý Notepad++ - když stáhneš pár vychytávek.
No ono to neni chyba, proste se to vlakno nezapne a nevykona to ty veci ktery
ma.
Jinak me staci Eclipse ten me buzeruje furt 
Jinak vlakno bota(klikani zatim provizorni):
import java.awt.Robot;
import java.awt.AWTException;
import java.awt.event.InputEvent;
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.JOptionPane;
public class Bot extends Thread{
int width; //sirka rozliseni
int height; //vyska rozliseni
String slovo; //slovo na surf
boolean stop;
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
public Bot(){
super("MBCBot");
this.width=dim.width;
this.height=dim.height;
}
public void run(){
while(!stop){
try{
Robot robot=new Robot();
slovo=Ctecka.slovo;
robot.delay(1000);
//kliknuti na reklamu
robot.mouseMove(width-286,height-243);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
robot.delay(5000);
//vypnuti okna
robot.mouseMove(386,12);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
//schovani prohlizece
robot.mouseMove(1280,10);
robot.mousePress(InputEvent.BUTTON1_MASK);
robot.mouseRelease(InputEvent.BUTTON1_MASK);
}
catch(AWTException e){
JOptionPane.showMessageDialog(null, "Vyskytla se chyba pri cinnosti bota", "Chyba bota", JOptionPane.ERROR_MESSAGE);
}
}
}
public void zapni(){
stop=false;
}
public void vypni(){
stop=true;
}
}
Uz jsem to vyresil, stacilo trochu zapremyslet, jsem ve vlaknech uz dlouho
nedelal.
Do vlakna s botem se prida
Thread.yield();
A do tridy s GUIckem do metody kde to zapinam, prepisu misto tohoto
b.join();
na
b.start();
Diky za pomoc, bez tvych pripominek bych se k tomu nedostal 
No právě - tam kde se chyba projevuje nemusí být problém,... 
Takze dalsi 2 chybky 
1. nefunguje mi metoda na napsani slova, macka si to uplne divny klavesy
void pis(String slovo){
int pismeno;
char znak;
for(int i=0;i<slovo.length();i++){
znak=slovo.charAt(i);
Character.toUpperCase(znak);
pismeno=(int)znak;
robot.keyPress(pismeno);
robot.keyRelease(pismeno);
}
}
2. nepredava se mi slovo z vlakna
tady by to melo teoreticky predat beh dalsimu vlaknu i s tim ze v promene slovo
neco je nacteny
while((slovo=br.readLine())!=null){
slovo=br.readLine();
Thread.yield();
}
jenze tady uz to predava velky kulovi
slovo=Ctecka.slovo;
if(slovo!=null){
pis(slovo);
}
Dekuji za pripadne rady 
Nechal bych si vypsat, co je v tom pismeno, ale ten kód vypadá docela dobře, funguje určitě to keyPress?
Slovo si prvně vytáhni do veřejné proměnné.
http://www.roseindia.net/…charat.shtml
Asi bude chyba ve funkci pis.
Díky, bralo to ASCII hodnotu maleho pismene, nevim proc kdyz to pismeno
zvetsuji ale nevadi, staci odecitat 32. Ted jen vyresit proc mi to nebere slova
z toho vlakna 
To načítání je nějaké dost divné teda. Ve while načítáš do slovo již v podmínce a potom znovu v těle, to voláš to readLine 2x a čteš 2 řádky v jedné iteraci.
Null máš ve slovo proto, že se tam dosadí při načtení poslední řádky. Co mát ten kód dělat? Tvůj kód projede po dvou řádkách celý soubor a pak vrátí null.
Tak kdyz to dam takhle:
while((slovo=br.readLine())!=null){
Thread.yield();
tak to nacte radek do promenne, preda beh vlaknu dalsimu, to vlakno to slovo
zpracuje a zase preda beh 1. vlaknu aby precetlo dalsi radek
aspon takhle si myslim ze to funguje 
Tak posledni problem vyresen, ono to ty slova precetlo driv nez to nekdo
stacil zpracovat, tak jsem tam dal uspani aby to stihlo udelat vsechny nasledne
kroky =))
Takze opet dekuji za pomoc, snad uz se zadne chyby neukáží 
A jsou ta vlákna opravdu nutná? Resp. děláš něco tak výkonnostně náročného, že potřebuješ využívat více jader? Nebo potřebuješ paralelní běh dvou procesů? Mě spíše přijde, že mezi vlákny neustále komunikuješ, vlákna jsou obecně velmi problémová a sahal bych k nim až v případě, že to jinak opravdu nejde.
Nic narocneho nedelam a ani neplanuji, dekuji za radu. Ani nevim proc me ty
vlakna napadly, asi udelam mensi upravu kodu 
Zobrazeno 19 zpráv z 19.