Zapis rekordu do pliku z długimi łańcuchami

0

Witam
możecie opisać jak radzicie sobie z tym problemem? - nie musi być to kod (choć oczywiście mile widziany)
Z rekordami gdzie rozmiar stringa z góry jest podany (do 255) jest to banał

tworze strumień TFileStream i zapisju rekord tak:
Plik.Write(PojedynczaWiadomosc,SizeOf(TSingleMessage));
ale co jeśli mam długie stringi? trzeba rozkładać na czści pierwsze rekord i zapisywać go po każdym polu aż dojdzie się do napisu no i właśnie co dalej - zapisać 4 bajty rozmiaru napisu i tablice znaków i odwrotnie przy odczycie czy jest na to jakiś "trick"

0

Ja zawsze jak mam zapisać do pliku przez FileStream albo MemoryStream jakieś dane tekstowe, to wcześniej tworzę nazwijmy to ich nagłówek, który przechowuje ich długości. Poniżej link do przykładu kodu wklejonego tutaj całkiem niedawno dla jednego lenia który nie pomyślał, że dodając do CheckBoxList obiekty powinien je również odpowiednio zapisać i później odczytać, aby program Terminarz działał tak jak sobie pewnie założył. Link do wycinka kodu bez deklaracji obiektów na formatce - jest na: http://pastebin.pl/37898 . I nie wiem czy dokładnie o coś takiego Tobie chodziło, może ktoś inny coś jeszcze lepszego Tobie doradzi.

0

:/ czyli moje obawy się potwierdzają - nie można tego w taki prosty sposób rozwiązać...
myślałem, że można by w jakiś sposób napisać uniwersalną klasę, która by to jakoś "opakowywała" i "rozpakowywała" tylko jak zmusić program do rozpoznania poszczególnych pól w rekordzie... niestety mam kilkanaście takich rekordów a problem powraca jak bumerang praktycznie w każdym programie który ma coś zapisywać

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