Programação  
 
Conhecimento computador >> Programação >> C /C + + programação >> 
Como ler um arquivo CSV em C
Muitos produtos de software que lidam com números e cálculos têm a capacidade de dados de saída em um Comma Separated Value (CSV) . Este formato pode ser uma maneira eficaz de transporte de dados entre programas diferentes , pois é de fácil leitura e bastante fácil de manipular. Muitos programas em C que lidam com dados provavelmente vai ter que ler um arquivo CSV em algum ponto. Coisas que você precisa
editor de texto
Compiler
CSV entrada
Mostrar Mais instruções
1

Consulte a documentação do programa que está fornecendo o CSV arquivo . Determinar o número de campos , em cada linha , assim como o formato de cada campo . Por exemplo , se um programa fornece um arquivo CSV com os seguintes dados :

1 , "teste" , 34,5

Você poderia anotar três campos: um inteiro, uma corda e um número de ponto flutuante .
2

Criar uma estrutura que contém um membro de dados para cada campo identificado no CSV. Usando a linha de exemplo , desde de 1 , "teste" , 34,5 seria necessário a seguinte estrutura:

struct dados

{

int col1 ;

char * col2 ;

flutuar col3 ;

};
3

Crie um método em seu programa que vai lidar com a leitura do arquivo CSV. Isto terá de ser acessível para o resto do seu programa, e provavelmente terá de trabalhar em estruturas de dados comuns para que outros métodos podem acessar os dados que foi lido dentro Passe o parâmetro por referência para eliminar a necessidade de um valor de retorno . Um protótipo de função exemplo seria:

vazio ParseCSV (char * filename , dados e entrada) ;
4

Inclua o padrão de IO usando o seguinte código :

# include

Adicione este código ao topo do arquivo de origem que será ler o CSV.
5

incluir a biblioteca string para permitir a manipulação do dados CSV usando o seguinte código :

# include

Adicione este código ao topo do arquivo de origem que será ler o CSV
. 6

Criar um objeto de arquivo , que irá ler os dados , usando o seguinte código :

fILE * pInput ;
7

Criar um buffer de caracteres suficientemente grande para conter um linha do arquivo de cada vez. Devido a limitações da linguagem , a maneira mais simples de fazer isso é declarar uma matriz de caracteres de um tamanho suficientemente grande , como acontece com :

# define BUFFER_SIZE 1024

de char buf [ BUFFER_SIZE ] ;
8

Abra o arquivo com o seguinte código , e atribuí-lo ao seu objeto de arquivo criado anteriormente :

pInput = fopen ( "nome do arquivo ", "r" )

9

lido em uma linha do arquivo usando o seguinte código :

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

Analise o CSV usando a função " strtok " . Crie uma nova seqüência de caracteres para apontar para as fichas, e inicialize-o com os dados da linha lida em acima :

char * tok = strtok ( buf , ",")
11 < ​​p > Converter as símbolo recebidos em os dados apropriados. Usando a linha de exemplo :

1 , "teste" , 3,45

converter os dados contidos no " tok " para um inteiro usando o seguinte código :

row.col1 = atoi ( tok );
12

Para leituras subsequentes da mesma linha , passar " strtok " um parâmetro NULL em vez da string buffer que você leia antes :

tok = strtok ( NULL, ",")

Em seguida, converta o token para o tipo de dados apropriado . Usando a linha de exemplo

1 , "teste" , 3,45

O código de análise para uma única linha seria :

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

row.col1 = atoi ( tok );

tok = strtok (NULL, "," );

row.col2 = tok ;

tok = strtok (NULL, "," );

row.col3 = atof ( tok );
13

Faça isso para todas as entradas em cada linha da CSV. A função " strtok " continuará a fornecer os dados entre os valores por vírgula até que se esgote de dados no buffer, em que ponto ele retornará NULL. Isso vai indicar que você terminou com a linha .

Anterior :

Próximo : No
  Os artigos relacionados
·Como converter e Decode HTML em um String no iPhone 
·Como imprimir um triângulo em C 
·Como compilar um CPP Com um arquivo de cabeçalho 
·Diferença entre fgetc e getc 
·Como fazer o download e loja de mídia com o iPhone SDK…
·Como usar a ferramenta Calculate para CPP 
·Qual é o significado de ANSI 
·Como criar gráficos no Visual C 
·Como criar uma Lista de Vector 
·Como escrever um fluxo de entrada em um fluxo de saída…
  Artigos em destaque
·As diferenças em malloc e calloc 
·Como criar uma caixa de nova imagem em tempo de execuç…
·Como fazer Int Parte C + + Cordas 
·Como fazer o download e loja de mídia com o iPhone SDK…
·Como construir um aplicativo móvel que usa uma câmera…
·Como imprimir um triângulo em C 
·Como escrever várias linhas para arquivo em C 
·Como definir a fonte para Arial em C # 
·Como usar linguagem C para calcular juros compostos 
·Como calcular interseção Circles em C + + 
Cop e direita © Conhecimento computador http://ptcomputador.com Todos os Direitos Reservados