Dator
 |  Startsida |  Hårdvara |  Nätverk |  Programmering |  Programvara |  Felsökning |  System |   
Programmering
  • C /C + + -programmering
  • Computer Programspråk
  • Delphi Programmering
  • Java Programming
  • JavaScript programmering
  • PHP /MySQL Programmering
  • perl Programmering
  • python Programming
  • Ruby programmering
  • Visual Basics Programmering
  • * Dator Kunskap >> Programmering >> C /C + + -programmering >> Content

    Hur man läser en CSV -fil i C

    Många programvaror som hanterar siffror och beräkningar har förmågan att utdata i en kommaseparerade värden ( CSV ​​) fil . Detta format kan vara ett effektivt sätt att transportera data mellan olika program , eftersom det är lättläst och ganska lätt att manipulera . Många C-program som hanterar data som sannolikt kommer att behöva läsa från en CSV -fil någon gång . Saker du behöver
    Text Redaktör Compiler
    CSV -fil input
    Visa fler instruktioner
    1

    Konsultera dokumentationen för det program som tillhandahåller CSV fil. Bestäm antalet fält i varje rad , samt formatet för varje fält . Till exempel, om ett program ger en CSV med följande uppgifter :

    1 , "test " , 34,5

    Du skulle markera ner tre fält : ett heltal , en sträng och ett flyttal .
    2

    Skapa en struktur som innehåller en data som ledamot för varje fält anges i CSV . Använda den medföljande exemplet linje 1 , "test " , 34,5 skulle du behöva följande struktur :

    struct uppgifter

    {

    int col1 ;

    char * col2 ,

    float col3 ,

    };
    3

    Skapa en metod i ditt program som hanterar läsa CSV-fil . Detta måste vara tillgänglig för resten av ert program , och kommer sannolikt att behöva arbeta på gemensamma datastrukturer så att andra metoder kan komma åt data som har lästs in Passera parametern utifrån undanröja behovet av ett returvärde . Ett exempel funktionsprototyp skulle vara :

    void ParseCSV ( char * filnamn , data och input ) ,
    4

    Inkludera standard IO header med följande kod :

    # include

    Lägg denna kod till toppen av källfilen som ska läsa CSV . inkludera string biblioteket för att möjliggöra manipulering av
    5

    CSV-data med hjälp av följande kod :

    inkluderar #

    Lägg denna kod till toppen av källfilen som ska läsa CSV
    . 6

    Skapa ett file-objekt , vilket kommer att läsa in data med hjälp av följande kod :

    fILE * pInput ,
    7

    Skapa en karaktär buffert stor nog att rymma en raden 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 array av en tillräckligt stor storlek , som med :

    # define BUFFER_SIZE 1024

    char buf [ BUFFER_SIZE ] ;
    8

    Öppna filen med följande kod , och tilldela den till din tidigare skapade filen objekt :

    pInput = fopen ( " filnamn ", " r " ) katalog
    9

    Läs i en rad i filen med följande kod :

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

    tolka CSV hjälp funktionen " strtok " . Skapa en ny teckensträng att peka på polletter och initiera den med data från linjen läst i ovan :

    char * tok = strtok ( buf , " , " )
    11

    Konvertera den mottagna symbolen i lämpliga uppgifter . Med exemplet raden :

    1 , "test " , 3,45

    konvertera uppgifterna i " tok " till ett heltal med följande kod :

    row.col1 = atoi ( tok ) ,
    12

    för efterföljande läser från samma linje , passerar " strtok " en NULL parameter istället för bufferten strängen du läser in tidigare :

    tok = strtok ( NULL , " , " ) katalog

    sedan konvertera symbolen till rätt datatyp . Med exemplet

    linjen
    1 , "test " , skulle 3,45

    tolkningskoden för en enda linje 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 data mellan kommatecken värden tills det rinner ut ur data i bufferten , varefter den kommer att returnera null . Detta kommer att indikera att du är klar med linjen .

    Tidigare:

    nästa:
    relaterade artiklar
    ·Hur får man ett valt värde från en listruta i C
    ·Hur konvertera en sträng av heltal i en array av byte
    ·Hur man använder Unicode i C + + Program
    ·Nackdelarna av pekare i C
    ·Hur man programmerar i Visual C
    ·Hur man skriver ett program som kommer ut ordnade par i…
    ·Hur att packa en fil i C #
    ·Hur till Omvänd ett värde i C + +
    ·Hur man skapar en produktnyckel
    ·Hur du kontrollerar om en Array har värde eller ej i C…
    Utvalda artiklarna
    ·Hur man gör boxar brev nummer på Internet
    ·Hur man lägger C Style strängar i en array i C + +
    ·Hur hittar man adressen till en variabel i Python
    ·Pascal datatyper
    ·Ta reda på om en registernyckel finns i VBScript
    ·Så för att visa tiden i VB.Net
    ·Binära beräkningar Tips & Tricks
    ·Varför visas inte alla webbplatser lappat mot SQL atta…
    ·Hur : PHP MySQL Escape HTML för Infoga
    ·Hur får man ett elements bredd i Javascript
    Copyright © Dator Kunskap http://www.dator.xyz