Ir ao conteúdo
  • Cadastre-se

Ler arquivo CSV e tratar linhas


Luan Silva
Ir à solução Resolvido por Rafael Domingues Corrêa,

Posts recomendados

Boa noite, quero fazer uma organização em uma coleção de dados a partir de um arquivo .CSV cuja entrada é esta :

 

Primeira coluna é tipo texto e as 6 colunas demais sao do tipo float, como exemplo a linha a seguir:

img/0007.jpg , 152.6 , 488 , 252.4 , 99.20 , 13.31 , 458.7

e as demais linhas seguem mesmo padrão.

 

Arquivo de saida deveria ser:

 

Nome do arquivo : 0007.pts 

Conteudo : 

152.6 488

252.4 99.20

13.31 458.7

 

Ou seja, cada linha do arquivo gera seu respectivo arquivo "NomedaColuna1.pts" e como conteudo os pontos flutuantes organizados em pares.

 

Estou pesquisando aqui no fórum algumas implementações de leitura de arquivo,mas não estou conseguindo  tratar a linha e exportar de forma organizada, se alguem tiver alguma ideia será de grande ajuda

 

Link para o comentário
Compartilhar em outros sites

  • Solução

Carregue o arquivo *.CVS inteiro na memória e use a biblioteca <string.h> para gerenciar os dados em memória. Repare nesse código:

#include <stdio.h>#include <string.h> //É com essa biblioteca que você vai gerenciar os dadosint main (){  char texto[] = {"Nome,Sobrenome,Idade,Peso\n\Rafael,Domingues Correa,20,59.0\n\Pablo,Picasso,67,61.3"}; //Dados supositórios  char *pch; //Ponteiro para cada frase  printf ("Separando texto em partes:\n\n");  pch = strtok(texto, ","); //A função strtoc recebe o endereço dos dados, e os caracteres de separação  /** No caso de arquivos CSV a 'vírgula' (,) é o caractere separador **/  while (pch != NULL) //Enquanto houver frases  {    printf("%s\n", pch);    pch = strtok(NULL, ","); //Procura próxima frase    /** Nesse caso não há mais necessidade de enviar o endereço, pois    strtok() armazena-o numa variável global de <string.h> **/  }  return 0;}

Basta fazer a implementação de leitura de arquivo com <stdio.h> e <sys/stat.h>

E usar um espaço de memória alocado, com <stdlib.h> para armazenar os dados de acordo com a nova estrutura.

Não é necessário criar um vetor, um array já será o suficiente.

 

Qualquer dúvida dê um toque!

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!