Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.