Udostępnij za pośrednictwem


Pomijanie mechanizmu serializacji

Jak już wiesz, struktura zapewnia domyślny sposób odczytywania i zapisywania danych do i z plików. Serializacja za pośrednictwem obiektu archiwum odpowiada potrzebom wielu aplikacji. Taka aplikacja odczytuje plik w całości w pamięci, pozwala użytkownikowi zaktualizować plik, a następnie ponownie zapisuje zaktualizowaną wersję na dysku.

Jednak niektóre aplikacje działają na danych zupełnie inaczej, a w przypadku tych aplikacji serializacji za pośrednictwem archiwum nie jest odpowiednie. Przykłady obejmują programy bazy danych, programy, które edytują tylko części dużych plików, programy, które zapisują pliki tylko tekstowe, i programy, które współużytkujące pliki danych.

W takich przypadkach można zastąpić funkcję Serialize w inny sposób, aby mediatować akcje plików za pośrednictwem obiektu CFile , a nie obiektu CArchive .

Możesz użyć Openfunkcji składowych , Read, CloseWritei Seek klasyCFile, aby otworzyć plik, przenieść wskaźnik pliku (szukać) do określonego punktu w pliku, odczytać rekord (określoną liczbę bajtów) w tym momencie, pozwolić użytkownikowi zaktualizować rekord, a następnie ponownie zastosować ten sam punkt i zapisać rekord z powrotem do pliku. Struktura otworzy plik i możesz użyć GetFile funkcji składowej klasy CArchive , aby uzyskać wskaźnik do CFile obiektu. W celu jeszcze bardziej zaawansowanego i elastycznego użycia można zastąpić funkcje składowe OnOpenDocument i OnSaveDocument klasy CWinApp. Aby uzyskać więcej informacji, zobacz klasa CFile w dokumentacji MFC.

W tym scenariuszu Serialize przesłonięcia nie działają nic, chyba że na przykład chcesz, aby odczytywał i zapisywał nagłówek pliku, aby zachować jego aktualność po zamknięciu dokumentu.

Zobacz też

Używanie dokumentów