Diskuze: Vstup ze souboru
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 13 zpráv z 13.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Mozna radsi zkus zmenit format souboru pro otázky na:
otazka1:spravnaOdpoved:odpovedA:odpovedB
otazka2:spravnaOdpoved:odpovedA:odpovedB
atd.
Poté ti bude stačit pouze vždy přečíst jeden řádek jako jednu otázku (Stačí rozparsovat řádek podle dvojtečky). Co se týče samotného čtení souborů, tak tě můžu odkázat na zdejší tutoriál - http://www.itnetwork.cz/java/soubory.
Jak to myslíš ? Trošička sem to nepochopil. Konkrétně jak to "rozparsovat". Hlavně nevím jak pomocí BufferedReaderu udělat jakoby mezeru v tom čtení. Protože tam je těch otázek víc a řekněme že už to mám v tom řádku ale i tak jak udělám to aby se vypsal 1 řádek a pak bylo místo pro odpověd napadlo mě to dát do cyklu, ale to stále neřeší to jak to rozkouskovat. Sorry jestli mi něco uniká
Pravděpodobně myslel rozdělit přes .split() A jak přečíst jen jeden řádek a poté si dělat věci kolem? Použiješ jeden BufferedReader, na kterém zavoláš .readLine() a pak si děláš věci kolem, když je potřeba další řádka, tak opět .readLine() atd. Ovšem hádám, že kvůli zjednodušování zavírání používáš try-with-resources, takže tam by bylo lepší si přes cyklus načíst jednotlivé řádky např. do pole, odkud bys je poté postupně četl...
tak si přečti toto:
http://www.itnetwork.cz/java/soubory
Skús toto:
public static void nacitajOtazku() throws Exception {
BufferedReader b = new BufferedReader(new FileReader("subor.txt"));
String riadok;
while ((riadok = br.readLine()) != null) {//číta súbor po riadkoch
String rozdelenyRiadok[] = riadok.split(":");//rozdelí riadok
}
}
Nefunguje.. zapnu a nic nenapíše (do file readeru jsem dal cestu k
souboru)
btw máš tam chybku v tom BufferedReaderu "b" a pak tam máš "br".readLine
Sorry, nevšimol som si tú chybu. Ono to ani nemá nič písať, iba to načíta riadky so súboru a rozdelí ich. Ak to má aj vypisovať,mohlo by to vyzerať takto:
public static void main(String[] args) throws Exception {
nacitajOtazku();
}
public static void nacitajOtazku() throws Exception {
BufferedReader br = new BufferedReader(new FileReader("subor.txt"));
String riadok;
while ((riadok = br.readLine()) != null) {
String pole[] = riadok.split(":");
System.out.println("Otázka: " + pole[0]);
System.out.println("Správna odpoveď: " + pole[1]);
System.out.println("Odpoveď A: " + pole[2]);
System.out.println("Odpoveď B: " + pole[3]);
}
}
Už jsem na to přišel.. sice je to asi trochu složitější ale funguje to mi stačí aji tak děkuju
try {
int[] spravnaOdpoved = new int[10];
spravnaOdpoved[0] = 1;
spravnaOdpoved[1] = 1;
spravnaOdpoved[2] = 2;
spravnaOdpoved[3] = 1;
spravnaOdpoved[4] = 1;
spravnaOdpoved[5] = 2;
spravnaOdpoved[6] = 1;
spravnaOdpoved[7] = 1;
spravnaOdpoved[8] = 2;
spravnaOdpoved[9] = 2;
String text = "";
for (int i = 0;i<10;i++) {
text=nem.readLine();
System.out.println(text);
System.out.print("Odpověď: ");
hodnoceni = kontrolaOdpovediOtazky(2, spravnaOdpoved[i])+hodnoceni;
}
nem.close();
}catch (Exception e) {
System.out.println("Při výpisu otázky se vyskytla chyba. Zkontroluj umístění souborů s otázkami.");
}
Výborně Jenom pro pozdější "vývoj" by bylo lepší, kdyby jsi odpovědi k otázkám psal rovnou do toho txt souboru, pak jde rozšiřovat obsah bez zásahu do kódu
Jasný tak já jsem na škole se zaměřením na informační technologii v prváku takže tohle učitelovy stačí no sem zvědavej co budu muset programovat ve vyšších ročnících :/
Zobrazeno 13 zpráv z 13.