Dator > hur man läser en CSV -fil i C

  • hur man läser en CSV -fil i C


  • Många programvaror som hanterar siffror och beräkningar har möjligheten att skriva ut data till en Kommaavgränsade värden ( CSV ) fil . Detta format kan vara ett effektivt sätt att transportera data mellan olika program , eftersom den är lättläst och ganska lätt att manipulera . Många C -program som behandlar data sannolikt kommer att behöva läsa från en CSV- filen någon gång

    Du behöver : .
    textredigerare
    Kompilatorn .
    CSV -fil ingång .


    1 .
    Läs dokumentationen för programmet som tillhandahåller CSV-filen . Bestäm antalet fält i varje rad , liksom formatet på varje fält . Till exempel , om ett program ger en CSV med följande data :

    1 , "test " , 34,5

    Du skulle markera ner tre områden: ett heltal , en sträng och ett flyttal .
    2 .
    Skapa en struktur som innehåller en data ledamot för varje fält som anges i CSV . Använd de medföljande exempelvis linje 1, "test " , 34,5 du skulle behöva följande struktur :

    struct data

    {

    int Kol1 ;

    char * col2 ;

    flyta col3 ;

    } ;
    3 .
    skapa en metod i ditt program som hanterar läsning CSV-filen . Detta måste vara tillgänglig för resten av ditt program , och kommer sannolikt att behöva arbeta på gemensamma datastrukturer så att andra metoder kan komma åt data som har lästs in Pass parametern med hänvisning till avlägsna behovet av ett returvärde . Ett exempel funktionsprototyp skulle vara.

    void ParseCSV ( char * filnamn , data och ingång) ,
    4
    Inkludera standard IO sidhuvudet med följande kod :

    # include
    Lägg
    denna kod till toppen av källfilen som kommer att läsa CSV .
    5 .
    Inkludera strängen biblioteket för att möjliggöra manipulation av CSV-data med hjälp av följande kod :

    # include

    Lägg till denna kod till toppen av källfilen som kommer att läsa CSV

    6
    Skapa ett File-objekt som kommer att läsa i data , med hjälp av följande kod : .

    FILE * pInput ;
    7
    Skapa
    ett tecken buffert stora nog att rymma en rad i filen på en gång. På grund av begränsningar i språket , det enklaste sättet att göra detta är att deklarera en karaktär utbud av en tillräckligt stor storlek , som med :

    # define BUFFER_SIZE 1024

    <. br />
    char buf [ BUFFER_SIZE ] ;
    8
    Öppna filen med följande kod , och koppla den till din tidigare skapade File-objekt :

    pInput=fopen ( " filnamn "," r " )
    9
    Läs i raden av filen med hjälp av följande kod : .



    fgets ( BUF , sizeof ( BUF ) , pInput )
    10 .
    Läser CSV med funktionen " strtok " . Skapa en ny teckensträng att peka på symboler och initiera den med data från linjen läsa i ovan :

    char * tok=strtok ( BUF , ",")

    11 .
    Konvertera det mottagna token i lämpliga uppgifter . Med hjälp av exempelvis linje :

    1 , "test " , 3,45

    konvertera data som finns i " TOK " till ett heltal med följande kod :

    row. col1=atoi ( TOK ) ,
    12
    För efterföljande läser från samma linje , passera " strtok " en NULL parameter i stället för den buffert strängen du läser in innan :

    tok=strtok ( NULL , ",")

    Konvertera sedan token till rätt datatyp . Med exemplet linje

    1 , "test " , 3,45

    tolkning kod för en enda linje skulle vara :

    char * tok=strtok ( BUF , ",");

    row. col1=atoi ( TOK ) ,

    tok=strtok ( NULL , ",");

    row. col2=tok ;

    tok=strtok ( NULL , ",");

    row. col3=atof ( TOK ) ,
    13 .
    Gör detta för alla poster på varje rad i CSV . Funktionen " strtok " kommer att fortsätta att tillhandahålla de uppgifter mellan kommatecken värden tills den får slut på data i bufferten , då den kommer tillbaka NULL . Detta kommer att indikera att du är klar med linjen .

    tips och varningar


  • kapsla in din data växling till en annan metod för att göra koden mer lättläst .
  • " fgets " metoden kommer att returnera null när filen har lästs . Använda detta i en while-slinga för att korsa hela filen
  • Funktionen " fopen " kan returnera null om det fanns ett fel-. se till att kontrollera din fil innan du använder det
  • I vissa fall , under förutsättning att polletter får inte vara av det förväntade formatet . Se till att granska dina uppgifter innan du blint konvertera genom att kryssa mot vanliga felvärden ( den tomma strängen , NULL , etc ) .

Previous:nothing Next:Inaktivera Windows -autentisering i IIS





Relaterade artiklar


  • Hur skapar jag en länk till en extern kalkylblad via VBA & tillgång ?
  • hur man definierar amazon namespace i Visual Basic
  • hur man skapar . PYC fil för att köras på webben
  • hur man skapar spel i Visual Basic
  • hur man kan beräkna tid i VB6
  • hur man gör en fleecefilt med bilder
  • Synkronisera två rullningsrutorna i Visual Basic
  • hur man lär sig objektorienterad design för en gammal strukturerad programmerare
  • hur man skapar en sida PHP
  • hur man installerar en Vista-förberedda hårdvara uppgradering