1. kamerák
  2. Car Audio & Electronics
  3. Home Audio
  4. Personal Audio
  5. TV-k
  6. Okos otthon
  >> Elektronikai Technológia Online >  >> Okos otthon >> Okos élet

CSV-fájl olvasása C-ben

Számos, számokkal és számításokkal foglalkozó szoftvertermék képes adatokat vesszővel tagolt érték (CSV) fájlba kiadni. Ez a formátum hatékony módja lehet az adatok különböző programok közötti átvitelének, mivel olvasható és meglehetősen könnyen kezelhető. Sok, adatokkal foglalkozó C programnak valószínűleg valamikor CSV-fájlból kell olvasnia.

1. lépés

Tekintse meg a CSV-fájlt biztosító program dokumentációját. Határozza meg az egyes sorokban lévő mezők számát, valamint az egyes mezők formátumát. Például, ha egy program a következő adatokat tartalmazza egy CSV-fájlban:1, "teszt", 34.5 Három mezőt kell megjelölnie:egy egész számot, egy karakterláncot és egy lebegőpontos számot.

2. lépés

Hozzon létre egy adattagot tartalmazó struktúrát a CSV-ben azonosított minden mezőhöz. Az 1-es példasort használva, a "teszt", 34.5 a következő struktúrára lesz szüksége:struct data { int col1; char *col2; float col3; };

3. lépés

Hozzon létre egy metódust a programban, amely kezeli a CSV-fájl olvasását. Ennek elérhetőnek kell lennie a program többi része számára, és valószínűleg közös adatstruktúrákon kell dolgoznia, hogy más módszerek is hozzáférhessenek a beolvasott adatokhoz. Adja át a paramétert hivatkozással, hogy ne legyen szükség visszatérési értékre . Példa a függvény prototípusára:void ParseCSV( char *fájlnév, adat&bemenet );

4. lépés

Adja meg a szabványos IO-fejlécet a következő kóddal:#include Adja hozzá ezt a kódot a CSV-t olvasni fogó forrásfájl tetejéhez.

5. lépés

Tartalmazza a karakterlánc-könyvtárat, amely lehetővé teszi a CSV-adatok kezelését a következő kóddal:#include Adja hozzá ezt a kódot a CSV-t olvasni fogó forrásfájl tetejéhez.

6. lépés

Hozzon létre egy fájlobjektumot, amely beolvassa az adatokat a következő kóddal:FILE * pInput;

7. lépés

Hozzon létre egy elég nagy karakterpuffert ahhoz, hogy a fájl egy sorát tárolja. A nyelv korlátai miatt ennek legegyszerűbb módja egy kellően nagy méretű karaktertömb deklarálása, például:#define BUFFER_SIZE 1024

char buf[BUFFER_SIZE];

8. lépés

Nyissa meg a fájlt a következő kóddal, és rendelje hozzá a korábban létrehozott FILE objektumhoz:pInput =fopen("fájlnév", "r")

9. lépés

Olvassa be a fájl egy sorát a következő kóddal:

fgets(buf, sizeof(buf), pInput)

10. lépés

Elemezze a CSV-fájlt az „strtok” függvény segítségével. Hozzon létre egy új karakterláncot, amely a tokenekre mutat, és inicializálja a fenti sorból származó adatokkal:char *tok =strtok(buf, ",")

11. lépés

Konvertálja a kapott tokent a megfelelő adatokká. A példasor segítségével:1, "test", 3.45 konvertálja a "tok"-ban található adatokat egész számmá a következő kóddal:row.col1 =atoi(tok);

12. lépés

Az ugyanabból a sorból történő további olvasáshoz adjon át "strtok" egy NULL paramétert az előzőleg beolvasott pufferkarakterlánc helyett:tok =strtok(NULL, ",") Ezután alakítsa át a tokent a megfelelő adattípusra. Az 1."test",3.45 példasort használva Egy sor elemzési kódja a következő lenne:char *tok =strtok(buf, ","); sor.col1 =atoi(tok); tok =strtok(NULL, ","); sor.col2 =tok; tok =strtok(NULL, ","); sor.col3 =atof(tok);

13. lépés

Tegye ezt a CSV minden sorában található összes bejegyzéshez. Az "strtok" függvény továbbra is biztosítja a vesszők közötti adatokat, amíg ki nem fogy a pufferből, ekkor NULL értéket ad vissza. Ez azt jelzi, hogy befejezte a sort.

Tipp

A kód olvashatóbbá tétele érdekében az adatkonverziót egy másik módszerbe ágyazza be. Az "fgets" metódus NULL értéket ad vissza, ha a fájlt teljesen elolvasta. Használja ezt egy while ciklusban a teljes fájl bejárásához.

Figyelmeztetés

Az "fopen" függvény NULL értéket adhat vissza, ha hiba történt – győződjön meg róla, hogy ellenőrizze a fájlt használat előtt. Egyes esetekben előfordulhat, hogy a megadott tokenek nem a várt formátumúak. A vakkonvertálás előtt feltétlenül vizsgálja meg adatait a gyakori hibaértékek (üres karakterlánc, NULL stb.) alapján.


  1. Hogyan lehet átalakítani a GPX fájl
  2. Hogyan importáljuk a CSV fájlt egy BlackBerry
  3. Hogyan olvassuk az AT & T File
  4. Hogyan lehet létrehozni egy ÉP CSV File
  5. Titkosított fájlok olvasása