Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
nájdete v dokumentácii programu , ktorý poskytuje CSV súbor . Určite počet polí v každom riadku , rovnako ako formát každé pole . Napríklad , ak program poskytuje CSV s nasledujúcimi údajmi :
1 , " test " , 34,5
by ste poznačiť tri polia : jedno číslo , jeden reťazec a číslo jedna s plávajúcou desatinnou čiarkou .
2
Vytvoriť štruktúru obsahujúci dátový člen pre každé pole uvedené v CSV . Pomocou dodaného príklad riadok 1 , " test " , 34,5 budete potrebovať nasledujúcu štruktúru :
struct údaje
{
int col1 ;
char * col2 ;
float col3 ;
} ;
3
Vytvorte metódu vo svojom programe , ktorý bude spracovávať čítanie súboru CSV . To bude musieť byť prístupné po zvyšok svojho programu , a bude pravdepodobne musieť pracovať na spoločných dátových štruktúr tak , aby ostatné metódy môžu pristupovať k dátam , ktorá bola pre čítanie dovnútra odovzdať parameter odkazom odstrániť potrebu pre návratové hodnoty . Prototyp príklad funkcie by :
void ParseCSV ( char * filename , dáta a vstup ) ;
4
Zahrnúť štandardné IO hlavičku pomocou nasledujúci kód :
# include Pridať tento kód do hornej časti zdrojového súboru , ktorý bude čítať CSV . Zahrnúť do knižnice reťazec umožniť manipuláciu údaje CSV pomocou nasledujúci kód : # include Pridať tento kód do hornej časti zdrojového súboru , ktorý bude čítať CSV Vytvorte objekt súboru , ktorý bude čítať v dátach , pomocou nasledujúci kód : FILE * pInput ; Vytvoriť znak vyrovnávacia pamäť dostatočne veľká pre uloženie jedného riadok súboru naraz . Vzhľadom na obmedzenia jazyka , najpriamejšou spôsob , ako to urobiť , je deklarovať pole znakov dostatočne veľké veľkosti , ako u : # define buffer_size 1024 char buf [ buffer_size ] ; Otvorte súbor s nasledujúcim kódom a priraďte ju do skôr vytvoreného objektu súboru : pInput = fopen ( " filename " , "r " ) Prečítajte si v riadku súboru pomocou nasledujúci kód : fgets ( buf , sizeof ( buf ) , pInput ) Analyzovať CSV pomocou funkcia " strtok " . Vytvorte nový reťazec znakov poukázať na žetóny , a inicializovať ju na základe údajov z riadku čítať vyššie : char * tok = strtok ( buf , " , " ) Previesť prijaté tokenu do príslušných dát . Použitie príklad riadok : 1 , " test " , 3.45 previesť dáta obsiahnuté v " tok " na celé číslo pomocou nasledujúci kód : row.col1 = atoi ( tok ) ; následné čítanie z rovnakej linky , prejsť " strtok " NULL parametra namiesto vyrovnávacej pamäti reťazca môžete prečítať v pred : tok = strtok ( NULL , " , " ) Potom , previesť token na príslušný dátový typ . Použitie príklad linku 1 , " test " , 3,45 parsovanie kódu na jednom riadku by byť : char * tok = strtok ( buf , " , " ) ; row.col1 = atoi ( tok ) ; tok = strtok ( NULL , " " ) ; row.col2 = tok ; tok = strtok ( NULL , " " ) ; row.col3 = atof ( tok ) ; Urob to pre všetky položky na každom riadku CSV . Funkcia " strtok " bude aj naďalej poskytovať dáta medzi čiarkami hodnôt , kým to beží z dát v pamäti , na ktorom mieste to vráti NULL . To bude znamenať , že ste skončil s linkou .
5
. 6
7
8
9
10
11
12
13