Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako čítať CSV súbor v C

Mnoho softvérových produktov , ktoré sa zaoberajú číslami a výpočty majú schopnosť výstupných dát do hodnoty oddelené čiarkami ( CSV ​​) . Tento formát môže byť efektívny spôsob prenosu dát medzi rôznymi programami , ako je čitateľný a pomerne ľahko manipulovať . Mnoho programov C , ktoré sa zaoberajú s dátami bude pravdepodobne musieť čítať zo súboru CSV v určitom okamihu . Veci , ktoré budete potrebovať klipart textový editor
kompilátor
CSV súboru vstup
Zobraziť ďalšie inštrukcie Cestuj 1

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 .
5

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
. 6

Vytvorte objekt súboru , ktorý bude čítať v dátach , pomocou nasledujúci kód :

FILE * pInput ;
7

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 ] ;
8

Otvorte súbor s nasledujúcim kódom a priraďte ju do skôr vytvoreného objektu súboru :

pInput = fopen ( " filename " , "r " )

9

Prečítajte si v riadku súboru pomocou nasledujúci kód :

fgets ( buf , sizeof ( buf ) , pInput )
10

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 , " , " )
11

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 ) ;
12

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 ) ;
13

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 .

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené