Jump to content

[Resolvido] CSV em C++


AprendizC
 Share

Recommended Posts

Como estas a fazer e o que tens feito?

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Link to comment
Share on other sites

o programa e pa ser feito em c++ neste caso no dev c++.

o que se passa e o seguinte eu quero criar um programa que va buscar um arquivo csv com as datas de aniversario no c++ e comparar as datas com o dia e mes atual.

Se houver alguma data de nascimento igual mandar uma mensagem ao aniversariante por email por exemplo. 👍

Link to comment
Share on other sites

e qual e a duvida?

Nao estas a espera que alguem va' fazer o trabalho, pois nao?

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Link to comment
Share on other sites

PARA a data tenho o seguinte:

main()
{
   struct tm *DataAtual; //estrutura para armazenar data e hora.
   time_t Segundos;
   time(&Segundos); //obtém a hora em segundos.
   DataAtual = localtime(&Segundos); //converte horas em segundos.
   printf("\nDia........: %d", DataAtual->tm_mday);
   printf("\nMes........: %d", DataAtual->tm_mon+1);
   printf("\n\nPressione uma tecla para finalizar...");
   getch();
}

Para o csv:

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main ()
{
   int loop = 1;
   string value;
   while(loop = 1)
   {
       printf("\t\tLista de Aniversarios! \n");
       ifstream myfile;
       myfile.open ("EXEMPLO.csv");
       while (myfile.good())    
           getline ( myfile, value, ',' );
       cout << string ( value) << endl;
       myfile.close();    
       system("PAUSE");
       return 0;
   }
}

apesar de o do csv ta um pouco confuso

so pa lembra sou um aprendiz e nao tenho grande conhecimento de programaçao

Link to comment
Share on other sites

antes de mais, qualquer tipo de código que seja apresentado aqui no fórum deverá ser ladeado pelas tags

 e [/code ] (sem os espaços) onde no teu caso, como é em C++ deverás trocar <linguagem> por cpp.

exemplo (novamente, relembro que as tags é sem espaços)

[code=cpp ]

// ...

[/code ]

segundo, era bem saber o conteúdo ou um exemplo dos dados do CSV

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

ca esta o exemplo do csv:

Data de nascimento;;Endereco de e-mail;;Nome

;;;;

11-Mai;" ";exemplo@hotmail.com;;Exemplo

12-Mai;" ";exemplo@hotmail.com;;Exemplo

13-Mai;" ";exemplo@hotmail.com;;Exemplo

14-Mai;" ";exemplo@hotmail.com;;Exemplo

15-Mai;" ";exemplo@hotmail.com;;Exemplo

16-Mai;" ";exemplo@hotmail.com;;Exemplo

17-Mai;" ";exemplo@hotmail.com;;Exemplo

18-Mai;" ";exemplo@hotmail.com;;Exemplo

19-Mai;" ";exemplo@hotmail.com;;Exemplo

20-Mai;" ";exemplo@hotmail.com;;Exemplo

21-Mai;" ";exemplo@hotmail.com;;Exemplo

22-Mai;" ";exemplo@hotmail.com;;Exemplo

23-Mai;" ";exemplo@hotmail.com;;Exemplo

24-Mai;" ";exemplo@hotmail.com;;Exemplo

25-Mai;" ";exemplo@hotmail.com;;Exemplo

Edited by AprendizC
Link to comment
Share on other sites

😄 Não podiam escolher um formato de datas mais ranhoso, pois não???

while (myfile.good())	
  getline ( myfile, value, ',' );

Neste ciclo já vais buscar linha a linha. Agora é só percorrer a string e pegar separadamente nos campos delimitados pelo ;. Depois fazes parse da data numa struct tm.

Edited by Flinger
Link to comment
Share on other sites

Pode dar um exemplo das tags ou como é que se faz?

👍

antes de mais, qualquer tipo de código que seja apresentado aqui no fórum deverá ser ladeado pelas tags

 e [/code ] (sem os espaços) onde no teu caso, como é em C++ deverás trocar <linguagem> por cpp.

exemplo (novamente, relembro que as tags é sem espaços)

[code=cpp ]

// ...

[/code ]

segundo, era bem saber o conteúdo ou um exemplo dos dados do CSV

IRC : sim, é algo que ainda existe >> #p@p
Link to comment
Share on other sites

eu faria uma especie de split no csv.

EDIT: Agr que tive a ver o ficheiro, e era melhor fazer uma estrutura para cada linha

Edited by pikax

Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender.

A beleza de um código está em decompor problemas complexos em pequenos blocos simples.

"learn how to do it manually first, then use the wizzy tool to save time."

"Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."

Link to comment
Share on other sites

A própria função getline permite fazer isso, apanhando apenas até um delimitador :http://www.cplusplus.com/reference/string/string/getline/

Senão podes usar o sscanf: http://linux.die.net/man/3/sscanf ou o strtok: http://linux.die.net/man/3/strtok

É possível que exista algo mais elegante em c++, mas como não é propriamente a minha praia, não te posso aconselhar muito.

Conselho: Primeiro começa por ler para outras strings os vários componentes de uma linha. Depois tratas de pensar como extrair a data da string correspondente.

Edited by Flinger
Link to comment
Share on other sites

Com o seguinte CSV como ou qual a função que devo utilizar para guardar os dias e os meses de cada pessoa numa variável para que possa comparar com a data actual.

Dia;Mes; Nome; Email;

11; 03; Exemplo; Exemplo@mail.com;

11; 03; Exemplo; Exemplo@mail.com;

11; 03; Exemplo; Exemplo@mail.com;

11; 03; Exemplo; Exemplo@mail.com;

11; 03; Exemplo; Exemplo@mail.com;

11; 03; Exemplo; Exemplo@mail.com;

11; 03; Exemplo; Exemplo@mail.com; 😉

Edited by AprendizC
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.