[C++] Pliki binarne pewien problem ..

0

Chodzi o to że chciałbym podzielić swój plik tak:

                                      część pierwsza - label
                     jakieś dane np. cyfry i litery niewiadomo ile ich będzie
                                       część druga - label 
                        jakieś pola bitowe ew. text niewiadomi ile tego bęzie

                                                    itd...

I w takim układzie jeśli chce sie odwołać do danych w części drugiej to musze jakoś tam dojść ... jak to zmierzyć ? nie wiem kiedy są tam litery a kiedy cyfry i ile ich jest ale chce sie dostać do drugiej części .Wykorzystuje biblioteke iostream.h , fstream.h etc. zna ktoś jakiś sposob na ten problem ?? a moze są inne funkcje lepsze dotyczące zapisywania binarnego .. jak to jest np. z plikami *.bmp itd. przecież tam też to musi być jakoś zrobione ... za rady z góry dziękuje

0

Ja bym to zrobił metodą brute force ;-) .
1 sposob:
Przed kazdym labelem wstawiasz sobie jakis unikalny ciąg bitów a po labelu robisz to samo. i zaluzmy, ze znacznik nowego bloku w pliku to cztery jedynki 1111b. A zakonczenie labela to 11111b.
Plik wyglada tak

0100111110101101111

i przeszukujesz po kolei
[0100]111110101101111->0[1001]11110101101111... Az natrafisz na odpowiedni ciąg bitów.
2 sposob: (chyba latwiejszy)
Poczatek pliku zawiera dane o nim samym.
Czyli na przyklad pierwszy bajt zawiera ilosc blokow w pliku (x)
A potem x nastepnych bajtow zawiera offsety kolejnych czesci pliku.
Jeśli przy czytaniu z pierwszego sektora danych dojdziesz do offsetu drugiego to konczysz odczyt.
Strasznie zamotałem :-D :-D :-D .
Ale raczej ten 2 sposób jest lepszy.

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