Programowanie wizualne PW – LAB6 Wojciech Pieprzyca
Zapis do pliku 1) Wykorzystywana jest biblioteka fstream.h Należy dołączyć tę bibliotekę: #include 2) Otwarcie pliku: a) wykorzystując konstruktor klasy ofstream ofstream outfile ("nazwa_pliku"); lub b) wykorzystując metodę open ofstream outfile; outfile.open("nazwa_pliku");
Zapis do pliku 3) Można sprawdzać czy udało się otwarcie pliku za pomocą metody fail(). if (outfile.fail()) { ShowMessage(Nie udalo sie otworzyc pliku do zapisu); return; } 4) Zapis danych do pliku odbywa się za pomocą strumienia wyjściowego <<. Można także wykorzystać znacznik endl, który spowoduje przejścia do nowej linii. outfile << "Przykładowy tekst" << endl;
Zapis do pliku 5) Zamknięcie pliku outfile.close(); Utworzony plik pojawi się w katalogu w którym zapisaliśmy projekt. W powyższym przykładzie zapis do pliku będzie odbywał się w trybie nadpisywania tzn. jeżeli plik o podanej nazwie już istniał to zostanie zastąpiony nowym a stara zawartość zostanie utracona. Jeżeli chcemy tego uniknąć i otwierać plik w trybie dopisywania informacji należy wywołać konstruktor lub metodę open klasy ofstream z drugim parametrem ios::append np. outfile.open("nazwa_pliku.txt", ios::app);
Odczyt z pliku 1) Wykorzystywana biblioteka fstream.h Należy dołączyć tę bibliotekę: #include 2) Otwarcie pliku: a) wykorzystując konstruktor klasy ofstream ifstream infile ("nazwa_pliku"); lub b) wykorzystując metodę open ifstream infile; infile.open("nazwa_pliku");
Odczyt z pliku 3) Można sprawdzać czy udało się otwarcie pliku za pomocą metody fail(). if (infile.fail()) { ShowMessage(Nie udalo sie otworzyc pliku do odczytu); return; }
Odczyt z pliku 4a) Odczyt danych z pliku może odbyć się za pomocą strumienia wejściowego >>. Wadą tego sposobu jest to, że zostanie odczytane tylko jedno słowo (do pierwszej spacji) z danej linii pliku tzn. dla tekstu przykladowy tekst zostałoby odczytane słowo przykładowy. Powtórne wywołanie strumienia wejściowego zwróciłoby słowo tekst. Proszę zauważyć, że tekst wczytywany jest do zmiennej bufor typu tekstowego. char bufor[255]; infile >> bufor; ShowMessage(bufor); infile >> bufor; ShowMessage(bufor);
Odczyt z pliku 4b) Drugi sposób odczytu umożliwia wczytanie z pliku całej linii o maksymalnej długości określonej przez programistę. Realizacja odbywa się za pomocą metody getline(). infile.getline(bufor, 255); Wyświetlenie wszystkich linii z pliku mogłoby się odbywać za pomocą następującej pętli (pętla działa dopóki funkcja eof nie zwróci informacji, że osiągnęliśmy koniec pliku). eof oznacza end of file while (!infile.eof()) { infile.getline(bufor, 255); ShowMessage(bufor); }
Odczyt z pliku 5) Zamknięcie pliku outfile.close();