Jak zapisać i odczytać strukturę z pliku

0

hej!..
mój problem polega na tym że strukturka wygląda tal:
struct cos
{
AnsiString a, b;
cos *next;
};

a później:
cos *a;
jakieś dane do strukturki, kolejne węzły itd..
i w końcu zapis i odczyt..
w necie widziałem kilka tutek do struktur ale żadna nie pokazywała jak to działa dla wskaźników..
z góry dzięki za pomoc

0
seishin napisał(a)

hej!..
mój problem polega na tym że strukturka wygląda tal:
struct cos
{
AnsiString a, b;
cos *next;
};

a później:
cos *a;
jakieś dane do strukturki, kolejne węzły itd..
i w końcu zapis i odczyt..
w necie widziałem kilka tutek do struktur ale żadna nie pokazywała jak to działa dla wskaźników..
z góry dzięki za pomoc

:D bo jakieś głupoty czytałeś...
Tu masz: http://www.parashift.com/c++-faq-lite/serialization.html

Radzę to zrobić porządnie na obiektach (C++), chyba, że musi być w C... Ale to już Twój wybór.

Tu masz też podobny wątek: http://4programmers.net/Forum/126722?h=zapis%20struktur#126722
Ale odradzam zapis binarny, prościej użyć tekstowego, przynajmniej łatwo sprawdzić co jest zapisane.

Uniwersalne rozwiązanie: http://boost.org/libs/serialization/doc/index.html, ale to wymaga pewnej wiedzy i jest w C++.

0

thx!! prawde mówiąc w objektowym to jestem jeszcze zielony tzn. znam podstawowe pojęcia ale praktyki mam niewiele i tak naprzykład takiej listy jak tu na strukturach na objektach raczej nie potrafie zrobić :-/

0
seishin napisał(a)

w necie widziałem kilka tutek do struktur ale żadna nie pokazywała jak to działa dla wskaźników..

Nie pokazywała bo zapis wskaźników do plików jest bez sensu.

marcinEc napisał(a)

Radzę to zrobić porządnie na obiektach (C++), chyba, że musi być w C... Ale to już Twój wybór.

W C to to na pewno nie jest - Borland'owski AnsiString ;)

0
0x666 napisał(a)
seishin napisał(a)

w necie widziałem kilka tutek do struktur ale żadna nie pokazywała jak to działa dla wskaźników..

Nie pokazywała bo zapis wskaźników do plików jest bez sensu.

Nie takie znowu bez sensu ;) Oczywiście nie chodzi o zapis adresu (chociaż... :) ), ale te mądrzejsze serializatory zapamiętują, że już taki wskaźnik jest zapisany i dwa razy obiektu nie zapisują... :-P

0x666 napisał(a)
marcinEc napisał(a)

Radzę to zrobić porządnie na obiektach (C++), chyba, że musi być w C... Ale to już Twój wybór.

W C to to na pewno nie jest - Borland'owski AnsiString ;)

;) Chodziło mi o styl C (fwrite(Obiekt)) vs styl C++, np. stream << obiekt, czyli funkcje vs metody.

A btw. Borlanda: czy VCL (albo coś innego "czysto" Borlandowskiego, jak kiedyś conio) posiada serializację? Taki odpowiednik CObject.Serialize() z MFC?? Czy AnsiString to po prostu: typedef std::string AnsiString??
[tak pytam, bo nie używam ani VCL, ani Borlanda... :> ]

0
marcinEc napisał(a)

czy VCL (albo coś innego "czysto" Borlandowskiego, jak kiedyś conio) posiada serializację? Taki odpowiednik CObject.Serialize() z MFC??

Z tego, co mi wiadomo to nie ma czegoś takiego.

Czy AnsiString to po prostu: typedef std::string AnsiString??

Nie. Jest to oddzielna klasa - prawdopodobnie chodzi o zachowanie zgodności z Delphi.

1 użytkowników online, w tym zalogowanych: 0, gości: 1