Krzysztof Mossakowski
Materiały dla studentów
 

Pliki
(klasa CFile)

MFC
Spis treści

Pliki
klasa CFile
Informacje ogólne
Klasa CFile
Klasy pochodne
Hierarchia klas

  •  Informacje ogólne

    • Przy obsłudze plików w aplikacjach pisanych przy użyciu MFC zalecane jest stosowanie klasy CFile i pochodnych

      • możliwe jest jednak stosowanie standardowych funkcji języka C lub C++ oraz funkcji obsługi plików zawartych w API Windows

    • MFC dostarcza mechanizm serializacji, dzięki czemu bardzo duża część operacji na plikach może być wykonywana automatycznie

[początek strony]

  •  Klasa CFile

    • Klasa CFile jest bazową klasą MFC dla obiektów obsługi plików

    • Jest odpowiedzialna za binarny, niebuforowany zapis i odczyt plików

      • zwiększenie funkcjonalności dają poszczególne klasy pochodne

    • Jest podstawową klasą obsługi plików wykorzystywaną w serializacji

    • Podstawowe operacje:

      • operacje wykonywane na nieotwartych plikach (np. zmiana nazwy, atrybytów, usunięcie)
        - wykonywane przez odpowiednie funkcje statyczne klasy CFile

      • otwieranie pliku - CFile::Open
        - parametrem jest sposób otwarcia pliku definiowany przy pomocy stałych z klasy CFile, np CFile::modeCreate, CFile::modeReadWrite
        - istnieje konstruktor z większą liczbą parametrów umożliwiający otwarcie pliku tuż po stworzeniu obiektu

      • zamykanie pliku - CFile::Close
        - ta metoda jest automatycznie wołana z destruktora jeśli plik nie został zamknięty

      • odczyt, zapis do pliku - CFile::Read, CFile::Write
        - binarny, niebuforowany

      • przesuwanie się po pliku - CFile::Seek

[początek strony]

  •  Klasy pochodne

    • CStdioFile

      • daje obsługę plików analogiczną do funkcji fopen języka C

      • obsługa plików tekstowych
        - automatyczna zamiana znaków sterujących końca wiersza
        - metody odczytu, zapisu ciągu znaków - CStdioFile::ReadString, CStdioFile::WriteString

      • klasa CInternetFile dziedziczy z CStdioFile, daje obsługę plików transmitowanych za pośrednictwem internetu
        - nie jest używana bezpośrednio, stosowane sa klasy pochodne: CGopherFile i CHttpFile

    • CMemFile

      • obsługa pamięci jako pliku

      • dwie możliwości:
        - zalokowanie pamięci dla pliku pamięciowego, zalokowany blok pamięci zostanie automatycznie zniszczony w destruktorze
        - dołączenie obiektu pliku pamięciowego do już istniejącego bloku pamięci przy pomocy metody CMemFile::Attach

      • klasa CSharedFile dziedziczy z CMemFile - daje możliwość obsługi jako plików bloków pamięci alokowanych przy pomocy funkcji GlobalAlloc
        - pamięć alokowana przez GlobalAlloc może być współużytkowana przez showek (clipboard), DDE (Dynamic Data Exchange) i OLE/COM
        - nie jest to pamięć, która może być dzielona pomiędzy procesami

    • CSocketFile

      • wykorzystywana do przesyłania danych za pośrednictwem sockets Windows

      • obiekt klasy CSocketFile może być dołączony do obiektu CSocket

[początek strony]

  •  Hierarchia klas

    CObject - informacja w trakcie wykonywania, dynamiczne tworzenie, serializacja
        CFile
            CMemFile
                CSharedFile
            CSocketFile
            CStdioFile
                CInternetFile
                    CGopherFile
                    CHttpFile

[początek strony]