• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

dario1133

pesquizar em ficheiros!!

4 mensagens neste tópico

gostava que me dessem um exemplo em c++ de como posso pesquizar num ficheiro.

por exemplo se tiver o ficheiro :

Zé,18;

Manel,20;

Carlos,19;

António,33;

Carlos, 11;

como posso pesquizar todos os Carlos que constam do ficheiro...???

Obrigado!!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que é que não sabes em particular?

Em traços gerais, será..

- Abrir o ficheiro para leitura, e ir lendo enquanto nao estiver no final do ficheiro

- Criar por exemplo uma estrutura que associa uma string e um int

- Ter um vector de estruturas

- Pesquisar o vector pela string da estrutura..

Enfim, haverá várias forma de o fazer, dependendo do problema e do teu grau de conhecimentos. Mas será mais fácil ajudar se colocares dúvidas em concreto...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se forem só ficheiros de texto, deve haver alguma função, perdão, método, que leia linha-a-linha. Não é preciso estar a ler tudo, guardar em memória e depois pesquiSar aí. Lês uma linha, pesquiSas nesssa linha (algum método da classe String/CString?), e depois "deita-la fora" e lês a próxima, e assim sucessivamente.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

É uma função, mesmo.

string linha;
ifstream ficheiro("ficheiro.txt");
if (!ficheiro) { /* correu mal */ }

getline(ficheiro, linha); //linha fica com a 1 linha do ficheiro

depois é questão de utilizares o método linha.find para encontrar a posição da vírgula, e a posição do ponto e vírgula, utilizar o método linha.substring para obter o nome e a idade, é fazer parse à idade caso seja para guardar como número.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora