| Home  | Casa  | Hardware  | Networking  | Programmazione  | Software  | Domanda  | Sistemi  |   
Programmazione  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Java Programming

  • Programmazione Javascript

  • PHP /MySQL Programmazione

  • Perl Programming

  • Python Programming

  • rubino Programmazione

  • Nozioni di base di Visual Programming
  •  
    Conoscenza Informatica >> Programmazione >> C /C + + Programming >> Content
    Come leggere un file CSV in C
    Molti prodotti software che si occupano di numeri e calcoli hanno la capacità di dati di output in un file di Comma Separated Value ( CSV ​​) . Questo formato può essere un modo efficace di trasporto dei dati tra programmi diversi , come è leggibile e abbastanza facile da manipolare . Molti programmi in C che si occupano di dati sarà probabilmente necessario leggere da un file CSV ad un certo punto . Cose che ti serviranno
    Text Editor
    Compiler
    CSV file di input
    Show More Istruzioni
    1

    consultare la documentazione del programma che sta fornendo il CSV file. Determinare il numero di campi in ogni riga , nonché il formato di ogni campo . Ad esempio, se un programma fornisce un CSV con i seguenti dati :

    1 , "test" , 34,5

    segnerebbe giù tre campi : un intero , una stringa e un numero in virgola mobile .
    2

    Creare una struttura che contiene un membro dati per ogni campo identificato nel CSV . Utilizzando la linea di esempio disponibile di 1 , "test" , 34.5 si avrebbe bisogno la seguente struttura :

    struct dati

    {

    int col1 ;

    char * col2 ;

    galleggiante col3 ;

    } ;
    3

    creare un metodo nel vostro programma che consente di gestire la lettura del file CSV . Questo dovrà essere accessibile al resto del programma , e probabilmente bisogno di lavorare su strutture dati comuni in modo che altri metodi possono accedere ai dati che sono stati letti dentro Passare il parametro per riferimento per eliminare la necessità di un valore di ritorno . Un esempio di funzione prototipo sarebbe:

    vuoto ParseCSV ( char * filename , di dati e di input) ;
    4

    includere l' intestazione standard IO utilizzando il seguente codice :

    # include

    Aggiungi questo codice all'inizio del file di origine che sarà la lettura del CSV .
    5

    includere la libreria di stringa per consentire la manipolazione del dati CSV utilizzando il seguente codice : # include


    Aggiungi questo codice all'inizio del file di origine che sarà la lettura del CSV
    . 6

    Creare un oggetto file , che leggere i dati , utilizzando il seguente codice :

    FILE * pInput ;
    7

    Creare un buffer di caratteri abbastanza grande da contenere un riga del file alla volta . A causa di limitazioni del linguaggio , il modo più semplice per farlo è quello di dichiarare un array di caratteri di dimensioni sufficientemente importanti , come con :

    # define BUFFER_SIZE 1024

    char buf [ BUFFER_SIZE ] ;
    8

    Aprire il file con il seguente codice , e assegnarlo al proprio oggetto File creato in precedenza :

    pInput = fopen ( "nomefile ", "r " ) per Pagina 9

    Read in una riga del file utilizzando il seguente codice :

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

    analizzare il CSV utilizzando la funzione " strtok " . Creare una nuova stringa di caratteri per indicare il token , e inizializzarla con i dati dalla linea lette in precedenza :

    char * tok = strtok ( buf , "," ) economici 11 < p > Converti il token ricevuto nei dati appropriati. Utilizzando la linea di esempio :

    1 , "test" , 3.45

    convertire i dati contenuti nel " tok " per un numero intero utilizzando il seguente codice :

    row.col1 = atoi ( tok ) ;
    12

    Per la successiva legge dalla stessa linea , passare un parametro NULL al posto della stringa di buffer si legge nella prima " strtok " :

    tok = strtok ( NULL , "," ) per

    Quindi , convertire il token per il tipo di dati appropriato . Utilizzando l'esempio linea

    1 , "test" , 3.45

    Il codice di analisi per una singola riga sarebbe:

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

    row.col1 = atoi ( tok ) ;

    tok = strtok ( NULL , "," ) ;

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

    row.col3 = atof ( tok ) ;
    13

    Fate questo per tutte le voci su ogni riga del CSV . La funzione " strtok " continuerà a fornire i dati tra valori virgola fino all'esaurimento dei dati nel buffer , a quel punto si ritorna NULL . Questo indica che hai finito con la linea .

    Previous :

    next :
      Articoli Correlati
    ·Come chiudere i programmi in C 
    ·Come leggere il numero di byte in Assembly Language Fil…
    ·Come fare una X e Y di griglia in C + + Game Testo 
    ·Come decodificare il Visual C 
    ·Come programmare in Visual C 
    ·Come compilare un CPP Con un file di intestazione 
    ·Turbo C Definizione & Process 
    ·Come creare il tuo Game Engine 
    ·Boost Tutorial Multithreading 
    ·Come dividere una stringa in C 
      Articoli in evidenza
    ·Come convertire le lettere in numeri in una tabella di …
    ·Come costruire strumenti per PHP 5 per Windows 
    ·Come leggere un Raw pagina Web in Visual Basic 
    ·Java crittografia AES codice 256 
    ·Come rimuovere un blocco PHP 
    ·Come creare una schermata iniziale in Visual Basic 6 
    ·Come ottenere i dati post di Apache2 mod_perl 
    ·Come collegare GoDaddy Java per MySQL 
    ·Come modificare gli articoli in ListBox con Visual Basi…
    ·Come controllare le classi di variabili in Python 
    Copyright © Conoscenza Informatica http://it.wingwit.com