Zápočet 22.1.2014

Odeslat odpověď

Smajlíci
:D :) :( :o :shock: :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode je zapnutý
[img] je zapnutý
[flash] je vypnutý
[url] je zapnuté
Smajlíci jsou zapnutí

Přehled tématu
   

Rozšířit náhled Přehled tématu: Zápočet 22.1.2014

Zápočet 22.1.2014

od cvutak » 22. 1. 2014 19:13

Dnes Yaghob zadal tento úkol: Máte data ve formátu FITS http://en.wikipedia.org/wiki/FITS, což je pradávný standard jakýchsi astronomických dat.

Soubory jsou binární, ale bloky mají textové hlavičky. Všechno je zarovnané na 2880B a jednotlivé záznamy v hlavičkách mají pevnou šířku 80 znaků. Hlavička má 10 znaků jména (space paddded), mezera, =, 78 znaků hodnoty (možná to není úplně přesně). Hodnota může být v řádku kdekoliv, whitespace nevadí. Hodnoty můžou být integer, float (i v scientific notation), string ohraničený apostrofy (escape sekvence apostrofu jsou dva za sebou), nebo bool s hodnotamy 'T' nebo 'F'.

Dál kdekoliv na řádku může být lomítko - všechno za ním je komentář. Potom jsou řádky začínající COMMENT (a nějaké další), které taky ignorujeme. Hlavička končí řádkem 'END' (+73 mezer).

Fun fact: 80 proto, že to je délka děrného štítku.

A konečně zadání: Vyzobat ze souboru data z hlaviček, zhruba ve formátu ukázkových txt (odpustil typy, nemuselo to být přesně na písmeno). Čas 3 hodiny. Vstupy a normu jsem přiložil.

Já jsem měl vlastně hotovo za necelou hodinu, ale dobře další hodinu jsem ladil zákeřný ifstream.ignore kterému, pozor, když dáte moc velké číslo, tak přeskočí jenom část vstupu (do konce bufferu?). Docela jsem se navztekal. Odcházel jsem druhý, myslím.
https://gist.github.com/PJK/59be9c6036e7f2a22cbb
Přílohy
test3.zip
(5.27 MiB) Staženo 247 x

Nahoru