C++ Bc. 23

Z GeoWikiCZ
Přejít na: navigace, hledání
CSV formát - čtení

CSV formát (Comma-separated values) se používá pro zápis tabulek, kde každý řádek tabulky je zapsán jako jeden řádek textového souboru (ukončený znakem '\n') a jednotlivé hodnoty v řádku jsou oddělovány znakem čárka (','). Kromě znaku čárka se jako oddělovač někdy používá také znak středník (';'). Středník místo čárky používá například tabulkový procesor Excel.

Zjednodušená pravidla formátu CSV jsou:

1. Každý záznam je umístěn v samostatném řádku, jednotlivá pole oddělena čárkou, za posledním polem se čárka neuvádí. Počet polí je v jednom souboru vždy konstatní.

     aaa,bbb,ccc
     zzz,yyy,xxx

2. Každé pole může být volitelně uzavřeno do uvozovek

     "aaa",bbb,"ccc"
     zzz,yyy,"xxx"

3. Jestliže pole obsahuje bílé znaky, znak uvozovky nebo znak čárka, musí být uzavřeno do uvozovek. Znaky uvozovky v poli se zdvojují

     "aaa","b""bb","cc,c"

Zadání

Napište funkci, která ze zadaného záznamu ve formátu CSV vytvoří výstupní seznam polí.

void CSV_cteni(std::string csv, std::vector<std::string>& pole, 
               char oddelovac=',');

Správnou činnost funkce ověřte na demonstračním programu.

Příklad - vstup

1,101MA1G,3+3,8,"z,zk",*p,"Matematika 1","Doc. Kočandrlová"
1,151TGE1,3+3,6,"z,zk",p,"Technická geodézie 1","Ing. Ratiborský"
1,153OSYL,1+2,5,kz,p,"Operační systém Linux","Ing. Pytel"

Příklad - výstup

0  1
1  101MA1G
2  3+3
3  8
4  z,zk
5  *p
6  Matematika 1
7  Doc. Kocandrlova

0  1
1  151TGE1
2  3+3
3  6
4  z,zk
5  p
6  Technicka geodezie 1
7  Ing. Ratiborsky

0  1
1  153OSYL
2  1+2
3  5
4  kz
5  p
6  Operacni system Linux
7  Ing. Pytel

1 101MA1G 3+3 8 z,zk *p Matematika 1 Doc. Kočandrlová
1 151TGE1 3+3 6 z,zk p Technická geodézie 1 Ing. Ratiborský
1 153OSYL 1+2 5 kz p Operační systém Linux Ing. Pytel

[ Zpět | C++ | Další ]