Udostępnij przez


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 przetwarzają dane w zupełnie inny sposób i dla tych aplikacji serializowanie za pomocą archiwum nie jest odpowiednie. Przykłady obejmują programy baz danych, programy, które edytują tylko części dużych plików, programy, które zapisują pliki tekstowe, i programy, które współużytkują 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ć funkcji składowych Open, Read, Write, Close i Seek klasy CFile, aby otworzyć plik, przesunąć wskaźnik pliku do określonego punktu, odczytać rekord (określoną liczbę bajtów) w tym miejscu, pozwolić użytkownikowi zaktualizować rekord, a następnie ponownie przesunąć wskaźnik do tego samego punktu i zapisać rekord z powrotem do pliku. Struktura otworzy plik dla ciebie, a następnie możesz użyć funkcji składowej GetFile klasy CArchive, aby uzyskać wskaźnika do obiektu CFile. 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ęcie nie robi nic, chyba że na przykład chcesz, aby odczytywał i zapisywał nagłówek pliku, aby utrzymać go w aktualnym stanie po zamknięciu dokumentu.

Zobacz także

Korzystanie z dokumentów