C: výběr informací z souboru

Od: Datum: 07.09.13 13:24 odpovědí: 8 změna: 07.09.13 20:51

Zdravím,

rozhodl jsem se v Céčku zkusit udělat program kde by jsem odpovídal na otázky v kvízu, který by jsem si sám vytvřil v textovém dokumentu. Teda po zpnutí programu jsam napsal cestu k souboru kde by v byl kvíz uložen. Jenže jsem nenašel způsob jak programu říct: v souboru na 1. řádku je otázka 2., 3., 4. řádek jsom možné odpovědi 5. řádek je písmeno zprávné odpovědi. Je v C fůnkce která by toto udělala za mě? asi ne že? Ono není ani problém říct na kterém řádku se co nachází ale aby to bylo pokaždé jiné (Kvízy 1# budou mít 5 otázek kvízy 23# budou mít 12 otázek atd). Poradí někdoi?


Seznam odpovědí:
 
moment čekejte prosím, probíhá přenos dat...
Zobrazení struktury odpovědí v otázce
Skrytí struktury odpovědí v otázce
Zobrazení struktury odpovědí v otázce

 

Odpovědi na otázku:
Od: hop®
Datum: 07.09.13 13:31
avatar

Jako první znak řádku použijte "řídící" znak, podle kterého program zjistí, že jde o otázku, příslušnou odpověď nebo správnou odpověď. Tento znak při zobrazení odfiltrujte. načítání celé kvizové otázky tedy začne otázkou a skončí správnou odpovědí bez ohledu na počet možných odpovědí. Třeba takto:

0 Otázka
1 první odpověď
2 druhá odpověď
...
9 devátá odpověď
A desátá odpověď
B jedenáctá odpověď
...
Z správná odpověď

Ohodnoceno: 2x
 
Od: fretka323*
Datum: 07.09.13 13:33

Díky a musím to číslovat hexadecimálně nebo stačí jakkoliv :)

Od: hop®
Datum: 07.09.13 13:39
avatar

Můžete to značit jak chcete, nemyslel jsem v příkladu hexadecimální znažení ale použití abecedy až do písmene Y.

0 Otázka

1 první odpověď

2 druhá odpověď

...

9 devátá odpověď

A desátá odpověď

B jedenáctá odpověď

...
F patnáctá
G šestnáctá
...
Z správná odpověď

Pokud chcete otázky číslovat v desítkové soustavě, zvolte si řídící znak dvoumístný, jinak budete omezený počtem číslic, například:

00 Otázka

01 první odpověď

02 druhá odpověď

...

09 devátá odpověď

10 desátá odpověď

11 jedenáctá odpověď

...
98 devadesátá osmá odpověď
99 správná odpověď

doplněno 07.09.13 13:39:

Šmarjá, sorry za formát *ee*

Ohodnoceno: 0x
 
Od: fretka323*
Datum: 07.09.13 13:41

díky, teprve se učím sám bych na to nepřišel a jak zajistím které odpovědi budou patřit k které otázce? šlo by něco takového?:

00Otázka

{

A:odpoved

B:Odpoved

C:Odpoved

}

Od: hop®
Datum: 07.09.13 13:47
avatar

Pokud začnete načítat řádky od řídícího kódu "00" a skončíte "99", máte načtenou právě jednu kompletní otázku.
Pokud to nevyhovuje, můžete řídící znak ještě rozšířit

0100 první otázka
0101 první možná odpověď na první otázku
...
0198 devadesátá osmá možná odpověď na první otázku
0199 správná odpověď na první otázku
0200 druhá otázka
...

Ale s naprogramováním nepomohu, Céčko není můj šálek kávy ;)

P.S.: omlouvám se, ale musím se vzdálit od compu, budu tu navečer, zatím hodně štěstí při programování

Ohodnoceno: 0x
 
Datum: 07.09.13 15:23
avatar

Já nevím, asi bych místo speciálního značení, které se odfiltruje prostě jen mezi otázkami dal prázdný řádek, protože pak je zřejmé, že první řádek je otázka, další řádky jsou možné odpovědi a poslední řádek před tím prázdným byla správná odpověď. Ale tak možností je samozřejmě docela dost.

Ohodnoceno: 1x
 
Od: hop®
Datum: 07.09.13 19:02
avatar

Ano, i to je varianta, ale stejně by bylo v programu nutné jednotlivé řádky textu nějak identifikovat. Pro Vaši možnost mluví jednodušší psaní textových souborů s otázkami. *palec* A jak říkáte, možností je mnoho...

Ohodnoceno: 0x
 
Od: hm®
Datum: 07.09.13 20:51
avatar

Jestli jsem to pochopil správně, tak program by dostal textovou předlohu, podle ní by zobrazoval jednotlivé otázky kvízu a vyhodnocoval správnost odpovědí.

Já bych klidně otázky odděloval prázdným řádkem, každá otázka by vždy na svém 1. řádku měla text otázky, na druhém řádku by byla správná odpověď (! změna proti zadání, ale připadá mi to jednodušší na programování!) a na dalších řádcích by byly odpovědi - libovolné množství, třeba pro každou otázku jiné. Takže program by načetl řádek (první), ten by nějak třeba zvýrazněně vypsal (je to znění otázky), pak by si přečetl a uložil druhý řádek (číslo nebo kód správné odpovědi) a dál by jen četl řádky a postupně je zobrazoval tak, jak jsou, dokud by nenačetl řádek prázdný (konec otázky). Připomínám, že programu by bylo úplně fuk, kolik odpovědí by bylo zapsáno a jak by se označovaly, prostě by všechny ty řádky jen kompletně opsal. No a pak už by jen počkal na vložení odpovědi, tu porovnal ji s uloženým kódem/číslem a vypsal nějaký komentář.

Doporučuji se zamyslet, nad tím, jestli uživatel nebude moci zjistit, kde text kvízu je. Kdyby třeba viděl spouštěcí příkaz, kde bude jako parametr cesta ke kvízu, mohl by si kvíz stáhnout sám vedle a podívat se dovnitř na správné odpovědi.

Ohodnoceno: 0x
 

 

 

 

 

Přihlásit se k odběru odpovědí z této otázky:

Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz

 
Copyright © 2004-2016 Poradna Poradte.cz. Všechna práva na poradně Poradte.cz vyhrazena.