Datamaskin
  | Hjem | Hardware | Nettverk | Programmering | Software | Feilsøking | Systems | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringsspråk
  • Delphi Programming
  • Java Programming
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl Programming
  • Python Programming
  • Ruby Programming
  • Visual Basics Programming
  •  
    Datamaskin >> Programmering >> C /C + + Programming >> Content
    Hvordan lese en CSV-fil i C
    Mange programvareprodukter som omhandler tall og beregninger har muligheten til output data inn i en kommaseparert verdi ( CSV ​​) -fil . Dette formatet kan være en effektiv måte å transportere data mellom forskjellige programmer , som det er lesbar og ganske lett å manipulere. Mange C-programmer som omhandler data vil sannsynligvis nødt til å lese fra en CSV -fil på noen punkt . Du trenger
    tekst editor
    Compiler
    CSV fil input
    Vis flere instruksjoner
    en

    Se dokumentasjonen av programmet som er å gi CSV filen. Bestem antall felter på hver linje , i tillegg til formatet for hvert felt. For eksempel, hvis et program gir en CSV med følgende data : en

    1 , "test" , 34.5

    Du vil merke ned tre felt : ett heltall , en streng og ett flyttall .
    2

    Lag en struktur som inneholder en data -medlem for hvert felt identifisert i CSV. Ved hjelp av den medfølgende eksempelet linje med en " test" , 34.5 du vil trenge følgende struktur : en

    struct data

    {

    int col1 ;

    char * col2 ;

    float kol3 ;

    };
    3

    Lag en metode i programmet som vil håndtere lese CSV -filen. Dette må være tilgjengelig for resten av programmet, og vil sannsynligvis behovet for å arbeide på vanlige datastrukturer slik at andre metoder kan få tilgang til data som har blitt lest i. Pass parameteren ved henvisning til å fjerne behovet for en retur verdi . Et eksempel funksjon prototype vil være : en

    void ParseCSV ( char * filnavn , data og input);
    4

    Inkluder standard IO header ved hjelp av følgende kode :

    # include

    Legg denne koden til toppen av kilden filen som skal lese CSV.
    5

    Inkluder strengen biblioteket for å muliggjøre manipulering av CSV- data ved hjelp av følgende kode :

    # include

    Legg denne koden til toppen av kilden filen som skal lese CSV
    . 6

    Lag en fil objekt, som vil lese i data, ved hjelp av følgende kode :

    fILE * pInput ;
    7

    Lag en karakter buffer stor nok til å holde en linje i filen om gangen. På grunn av begrensninger i språket , den enkleste måten å gjøre dette på er å erklære en karakter rekke en tilstrekkelig stor størrelse , som med : en

    # define BUFFER_SIZE 1024

    røye buf [ BUFFER_SIZE ] ;
    8

    Åpne filen med følgende kode , og tilordne den til din tidligere opprettet fIL objekt : en

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

    9

    Les i en linje av filen ved hjelp av følgende kode :

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

    analysere CSV hjelp funksjonen " strtok " . Opprett en ny tegnstreng å peke på symboler, og starte den med data fra linjen lest i ovenfor:

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

    omformer de mottatte tegn i de tilhørende data . Ved å bruke eksempelet linje:

    1 , "test" , 3,45

    konvertere dataene i " Tok" til et heltall ved hjelp av følgende kode :

    row.col1 = atoi (TOK ),
    12

    for etterfølgende leser fra samme linje , pass " strtok " en NULL parameter i stedet for buffer strengen du leser i før : en

    TOK = strtok ( NULL , " ,")

    Deretter konvertere token til riktig datatype. Ved å bruke eksempelet linjen

    1 , "test" , ville 3,45

    parsing kode for en enkelt linje være : en

    char * Tok = strtok ( buf , "," ) ;

    row.col1 = atoi (TOK ),

    TOK = strtok ( NULL , " , ");

    row.col2 = TOK ;
    < p> TOK = strtok ( NULL , " , ");

    row.col3 = atof (TOK ),
    13

    Gjør dette for alle oppføringene på hver linje i CSV. Funksjonen " strtok " vil fortsette å gi data mellom komma verdier før den går tom for data i bufferen , og da vil det returnere NULL . Dette vil indikere at du er ferdig med linjen .

    früher :

     Weiter:
      Relatert Artike
    ·En Tutorial på Microsoft Visual Studio C + + 
    ·Hvordan bruke Printf Command i C + + 
    ·Redefinere metoder i C + + 
    ·Hvordan lage en If Else erklæringen i C 
    ·Hvordan skrive en Grid 5X5 bruke C + + 
    ·Slik viser boolske variabler i C + + 
    ·Hvordan skrive en linje Ryggefunksjon bruke pekere i C …
    ·Slik kjører C + + -filer på Notepad 
    ·Hvordan Tally prosent i C + + 
    ·Hvordan bruke Ogre Vector3 Operator 
      Anbefalte artikler
    ·Hvordan lage en SWF -fil til en URL -knapp 
    ·Hvordan avinstallerer Host Intrusion Prevention 
    ·Slik fjerner et barn fra XML Med PHP 
    ·Hvordan lage en Grading funksjon i Python 
    ·Kan du bruke SQL for Oracle Database 
    ·Slik fjerner en Strenglitteral Constant 
    ·Mest Lette PHP Frameworks 
    ·Hvordan å analysere Navn Anchor Lenker i PHP 
    ·Zebra ZPL Programming Guide 
    ·Hvordan lage et PHP og MySQL Content Management System …
    Copyright ©  Datamaskin  http://www.datamaskin.biz/