1. kamere
  2. Car Audio & Electronics
  3. Domači glasbeni sistem
  4. Osebni avdio
  5. televizorji
  6. Pametni dom
  >> Elektronske tehnologije Online >  >> Pametni dom >> Pametno življenje

Kako brati datoteko CSV v C

Številni izdelki programske opreme, ki se ukvarjajo s številkami in izračuni, imajo možnost izpisa podatkov v datoteko z vrednostmi, ločenimi z vejico (CSV). Ta format je lahko učinkovit način za prenos podatkov med različnimi programi, saj je berljiv in z njim dokaj enostavno manipulirati. Številni programi C, ki se ukvarjajo s podatki, bodo morali na neki točki verjetno brati iz datoteke CSV.

1. korak

Oglejte si dokumentacijo programa, ki zagotavlja datoteko CSV. Določite število polj v vsaki vrstici in obliko vsakega polja. Na primer, če program zagotovi CSV z naslednjimi podatki:1, "test", 34.5, bi označili tri polja:eno celo število, en niz in eno število s plavajočo vejico.

2. korak

Ustvarite strukturo, ki vsebuje podatkovni član za vsako polje, opredeljeno v CSV. Z uporabo podane vzorčne vrstice 1, "test", 34.5 bi potrebovali naslednjo strukturo:struct data { int col1; char *col2; float col3; };

3. korak

V svojem programu ustvarite metodo, ki bo obravnavala branje datoteke CSV. To bo moralo biti dostopno preostalemu delu vašega programa in bo verjetno moralo delovati na običajnih podatkovnih strukturah, tako da bodo druge metode lahko dostopale do podatkov, ki so bili prebrani. Parameter posredujte s sklicevanjem, da odpravite potrebo po vrnjeni vrednosti . Primer prototipa funkcije bi bil:void ParseCSV( char *filename, data&input );

4. korak

Vključite standardno glavo IO z naslednjo kodo:#include Dodajte to kodo na vrh izvorne datoteke, ki bo brala CSV.

5. korak

Vključite knjižnico nizov, da omogočite manipulacijo s podatki CSV z naslednjo kodo:#include Dodajte to kodo na vrh izvorne datoteke, ki bo brala CSV.

6. korak

Ustvarite datotečni objekt, ki bo bral podatke, z naslednjo kodo:FILE * pInput;

7. korak

Ustvarite medpomnilnik znakov, ki je dovolj velik, da sprejme eno vrstico datoteke naenkrat. Zaradi jezikovnih omejitev je najpreprostejši način za to, da deklarirate niz znakov dovolj velike velikosti, kot z:#define BUFFER_SIZE 1024

char buf[BUFFER_SIZE];

8. korak

Odprite datoteko z naslednjo kodo in jo dodelite svojemu predhodno ustvarjenemu objektu FILE:pInput =fopen("ime datoteke," "r")

9. korak

Preberite v vrstici datoteke z naslednjo kodo:

fgets(buf, sizeof(buf), pInput)

10. korak

Razčlenite CSV s funkcijo "strtok". Ustvarite nov znakovni niz, ki bo pokazal na žetone, in ga inicializirajte s podatki iz zgoraj prebrane vrstice:char *tok =strtok(buf, ",")

11. korak

Prejeti žeton pretvorite v ustrezne podatke. Z uporabo vzorčne vrstice:1, "test", 3.45 pretvorite podatke v "tok" v celo število z naslednjo kodo:row.col1 =atoi(tok);

12. korak

Za naslednja branja iz iste vrstice posredujte "strtok" parameter NULL namesto vmesnega niza, ki ste ga prebrali prej:tok =strtok(NULL, ",") Nato pretvorite žeton v ustrezen podatkovni tip. Z uporabo vzorčne vrstice 1,"test",3.45 Koda za razčlenjevanje za posamezno vrstico bi bila:char *tok =strtok(buf, ","); vrstica.col1 =atoi(tok); tok =strtok(NULL, ","); row.col2 =tok; tok =strtok(NULL, ","); row.col3 =atof(tok);

13. korak

To storite za vse vnose v vsaki vrstici datoteke CSV. Funkcija "strtok" bo še naprej zagotavljala podatke med vrednostmi vejice, dokler ji ne zmanjka podatkov v medpomnilniku, na kateri točki bo vrnila NULL. To bo pomenilo, da ste končali z vrstico.

Nasvet

Enkapsulirajte svojo pretvorbo podatkov v drugo metodo, da bo koda bolj berljiva. Metoda "fgets" vrne NULL, ko je datoteka v celoti prebrana. Uporabite to v zanki while za pregled celotne datoteke.

Opozorilo

Funkcija "fopen" lahko vrne NULL, če je prišlo do napake - preverite svojo datoteko, preden jo uporabite. V nekaterih primerih ponujeni žetoni morda niso v pričakovani obliki. Prepričajte se, da ste pred slepo pretvorbo pregledali svoje podatke tako, da preverite običajne vrednosti napak (prazen niz, NULL itd.).


  1. Kako spremeniti v GPX datoteko
  2. Kako UvozCSV datoteke za BlackBerry
  3. Preberite, kako AT & T datoteke
  4. Kako ustvariti POI datoteko CSV
  5. Kako brati šifrirane datoteke