Ler tipo de dados em arquivo?

1. Ler tipo de dados em arquivo?

Christiano
penguim

(usa Ubuntu)

Enviado em 21/06/2008 - 11:56h

Eu preciso fazer um trabalho para a faculdade.
Tenho que ler um arquivo que contém a quantidade, o nome e o tipo de dados. E depois permitir que o programa manipule esses dados. Neste caso o programa será uma árvore de busca binária.

Ex. do arquivo:
--------------
2
nome *char
idade int
--------------

Minha dúvida é como eu posso ler esses dados no arquivo e passar para o programa sem eu saber previamente de qual tipo é, ou seja, não ter uma estrutura pré-definida!

Grato pela atenção!



  


2. Re: Ler tipo de dados em arquivo?

Eduardo
bolche

(usa Ubuntu)

Enviado em 21/06/2008 - 12:31h

Bem, eu sugiro que você leia tudo como string e depois, dependendo do tipo, coverta para o tipo correto com funções como atoi(), etc.
Para guardar, eu sugiro duas soluções:
Ou vc declara um tipo union (que pode ter valores de vários tipos, mas só um ao deles mesmo tempo) e guarda o tipo de dado em algum lugar ou uma struct com vários tipos de dados e um identificador de qual tipo de dado estamos usando.
Acho que o union é mais elegante e gasta menos memória (é assim que linguagens de tipagem dinâmica tipo perl, php, etc. guardam suas variáveis)


3. string

Pedro
javamizer

(usa Suse)

Enviado em 21/06/2008 - 13:31h

concordo com o colega acima, e digo mais, será menos trabalhoso se você ler linhas inteiras e depois tratá-las, tipo uma string por linha.


4. Re: Ler tipo de dados em arquivo?

Fagner Amaral de Souza Candido
f_Candido

(usa Ubuntu)

Enviado em 21/06/2008 - 14:03h

Concordo com a solução apontada acima. Union é uma idéia bem interessante.


Abraços


5. Re: Ler tipo de dados em arquivo?

Christiano
penguim

(usa Ubuntu)

Enviado em 21/06/2008 - 16:12h

Obrigado pelas dicas...
Vou dar uma olhada de como funciona e comporta o UNION!


6. Re: Ler tipo de dados em arquivo?

Christiano
penguim

(usa Ubuntu)

Enviado em 21/06/2008 - 16:48h

Eu terei em tão que colocar todos os tipos de dados em um union e especificar em algum lugar de que tipo ele é? e a quantidade de malloc's do union será igual a quantidade de dados que tiver informado no arquivo?

ex. do union:
union tipo_dado{
int inteiro;
float flutuante;
long int inteirao;
char caracter;
*char string;
//... etc?
// Quais são todos os tipos?
}

o acesso é feito como uma estrutura?
por exemplo: tipo_dado->inteiro


7. Re: Ler tipo de dados em arquivo?

Christiano
penguim

(usa Ubuntu)

Enviado em 22/06/2008 - 16:04h

??






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts