Jump to content

[Resolvido] Classes em memoria secundaria


eddie_gordo

Recommended Posts

Boas...

Estou a fazer um trabalho em C++, simulando o funcionamento de uma linha do Metro. O enunciado pode ser visto aqui: http://www.dei.isep.ipp.pt/~cneves/TLP1_0506_2/Metro.htm

Já tenho praticamente tudo implementado, a unica coisa que me está a dar a volta à cabeça é a forma como vou conseguir guardar todas as classes, listas e listas dentro de classes e por aí, em memória secundária...

Alguém pode dar umas luzinhas? 😛 Se for necessário colocar aqui algum código avisem, sff...

Cumprimentos e obrigado desde ja pela disponibilidade.. 🙂

Link to comment
Share on other sites

Boas, não tenho a certeza do que vou dizer e não tenho tempo para confirmar a minha ideia (até pode ser um auténtico disparate).

Eu penso que se abrires os ficheiros de modo binário e escreveres directamente a classe no ficheiro, consegues gravar tudo no ficheiro.

Ficou a minha primeira ideia que veio à cabeça, cumpr. bk@ero  😁

Link to comment
Share on other sites

Boas, não tenho a certeza do que vou dizer e não tenho tempo para confirmar a minha ideia (até pode ser um auténtico disparate).

Eu penso que se abrires os ficheiros de modo binário e escreveres directamente a classe no ficheiro, consegues gravar tudo no ficheiro.

Depende se tem apontadores ou não. Como diz que tem listas dentro de classes, suponho que tem apontadores. As listas têm apontadores de certeza... Por isso tens que guardar os valores de cada elemento das listas um a um e recriá-las quando leres do ficheiro.

Outro problema é a maneira como tens as listas dentro das classes. Se tiveres um objecto lista é mais complicado do que se tiveres um apontador para lista...

Desaparecido.

Link to comment
Share on other sites

Creio que a serialização é a solução para o teu problema.

Vê mais sobre este assunto aqui:

http://www.parashift.com/c++-faq-lite/serialization.html

http://www.functionx.com/cpp/articles/serialization.htm

http://www.rrsd.com/boost/

10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Link to comment
Share on other sites

Creio que a serialização é a solução para o teu problema.

Vê mais sobre este assunto aqui:

http://www.parashift.com/c++-faq-lite/serialization.html

http://www.functionx.com/cpp/articles/serialization.htm

http://www.rrsd.com/boost/

Belos links! Tinha começado a experimentar uma solução para o problema que se assemelha a serialização, mas nada que se compare. Ainda nem tinha resolvido o problema dos apontadores.

Desaparecido.

Link to comment
Share on other sites

Obrigado a todos pelas ajudas! Já entreguei o trabalho... 😉 Nao usei serialização, apenas fui lendo os valores q tinha nos atributos das classes e gravando para um ficheiro de texto, separados por um caracter à escolha (usei o '#')... Dps, para ler novamente, foi só usar a função strtok da libraria string.h para poder ir buscar campo a campo e atribuir novamente os valores aos atributos das classes! 😄🙂

Cumprimentos a todos!

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
×
×
  • 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.