| Hjem | Hardware | Netværk | Programmering | software | Fejlfinding | systemer | 
Programmering  
  • C /C + + Programming
  • Computer Programmeringssprog
  • Delphi programmering
  • Java programmering
  • JavaScript Programmering
  • PHP /MySQL programmering
  • Perl programmering
  • Python Programming
  • Ruby Programming
  • Visual Basics Programmering
  •  
    Computer Viden >> Programmering >> C /C + + Programming >> Content
    Sådan læses en CSV-fil i C
    Mange software -produkter , der beskæftiger sig med tal og beregninger har evnen til output data i en kommaseparerede værdier (CSV ) fil. Dette format kan være en effektiv måde at transportere data mellem forskellige programmer , som det kan læses og forholdsvis let at manipulere. Mange C-programmer , der beskæftiger sig med data sandsynligvis bliver nødt til at læse fra en CSV-fil på et tidspunkt . Ting du skal
    Text editor
    Compiler
    CSV-fil input
    Vis Flere Instruktioner
    1

    Se dokumentationen for det program, der leverer CSV fil . Bestem antallet af felter i hver linje , samt formatet for hvert felt. For eksempel, hvis et program indeholder en CSV med følgende data : , salg

    1 , "test" 34,5

    Du ville markere ned tre områder: én heltal , en snor og en decimaltal .
    2

    Opret en struktur, der indeholder en data- medlem for hvert felt identificeret i CSV . Brug den medfølgende eksempel linje 1 , "test" , 34,5 ville du bruge følgende struktur : Hej

    struct data

    {

    int col1 ;

    char * col2 ,

    float col3 ,

    };
    3

    Oprette en metode i dit program , der vil håndtere at læse CSV-filen. Dette skal være tilgængelige for resten af dit program , og vil sandsynligvis nødt til at arbejde på fælles datastrukturer , så andre metoder kan få adgang til data, der er blevet læst i. Før parameter med henvisning til fjerne behovet for en returværdi . Et eksempel funktionsprototype ville være : Hej

    void ParseCSV ( char * filnavn , data & input ),
    4

    Medtag standard IO header ved hjælp af følgende kode : Hej

    # include

    Tilføj denne kode til toppen af ​​kildefilen , der vil være at læse CSV .
    5.

    Medtag strengen biblioteket for at aktivere manipulation af CSV data ved hjælp af følgende kode : Hej

    # include

    Tilføj denne kode til toppen af ​​kildefilen , der vil være at læse CSV
    . 6

    Opret en fil objekt , som vil læse i dataene ved hjælp af følgende kode : Hej

    fILE * pInput ,
    7

    Opret en karakter buffer stor nok til at holde en linje af filen ad gangen. På grund af begrænsninger i sproget, den mest ligefremme måde at gøre dette på er at erklære en karakter vifte af en tilstrækkelig stor størrelse , som med : Hej

    # define BUFFER_SIZE 1024

    char buf [ BUFFER_SIZE ] ;
    8

    Åbn filen med følgende kode , og tildele den til din tidligere oprettede fILE objekt : Hej

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

    9

    Læs i en linje af filen ved hjælp af følgende kode:

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

    parse CSV hjælp funktionen " strtok " . Opret en ny tegnstreng til at pege på tokens , og initialisere den med data fra strækningen læses i ovenstående :

    char * tok = strtok (BUF , ",")
    11 < ​​p > Konverter de modtagne token ind i de relevante data. Brug eksemplet linie : Hej

    1 , "test" , 3,45

    konvertere data , der er indeholdt i " tok " til et heltal ved hjælp af følgende kode : Hej

    row.col1 = atoi ( tok )
    12

    til efterfølgende læser fra den samme linje , pass " strtok " a NULL parameter i stedet for buffer streng, du læser i før : Hej

    tok = strtok ( NULL, ",")

    derefter konvertere token til den rette datatype . Brug eksemplet linie

    1 , "test" , ville 3,45

    parsing kode til en enkelt linje være : Hej

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

    row.col1 = atoi ( tok ),

    tok = strtok ( NULL, ",") ;

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

    row.col3 = atof ( tok ),
    13

    Gør dette for alle posterne på hver linje i CSV . Funktionen " strtok " vil fortsætte med at levere data mellem komma værdier, indtil det løber ud af data i bufferen , hvorefter det vil vende tilbage NULL . Dette vil indikere, at du er færdig med den linje .

    Forrige :

    næste :
      Relaterede artikler
    ·Sådan Input en blanding af tal og bogstaver fra en fil…
    ·Hvordan at begynde at lære Objective C på Windows 
    ·Fordele ved Funktion Prototyper 
    ·Sådan oprettes en Vektor af tegndatatabeller i C + + 
    ·Hvordan man laver en lodret graf i C + + 
    ·Sådan Konverter Char * til Int & C + + 
    ·Hvad er fordelene ved en Bot 
    ·Sådan Gennemføre Stack ADT 
    ·Sådan bruges Hovedfunktion i C + + 
    ·Sådan Beregn længde String 
      Anbefalede Artikler
    ·Java Collection Tutorials 
    ·Sådan Design N -differentieret Data Access Lag Brug da…
    ·Sådan Lær spil Coding 
    ·Thrift vs Protokol Buffere 
    ·Niveauer af abstraktion i Program Design 
    ·Sådan bruges Android SDK Tools på Windows 7 
    ·Sådan Limit Logins i Python kode 
    ·Sådan oprettes en simpel Ubuntu Daemon i PHP 
    ·Java Coding Standards 
    ·Sådan Rekursivt Traverse i en Linked List 
    Copyright © Computer Viden http://www.computerdk.com