Zapisywanie danych do plików tekstowych
Zapis całej zawartości Memo lub RichEdit
Komponenty Memo i RichEdit pozwalają nam za pomocą metody SaveToFile() zapisać od razu całą ich zawartość do pliku:
Unit1.cpp |
void __fastcall TForm1::Button1Click(TObject *Sender) |
Unit1.cpp |
void __fastcall TForm1::Button1Click(TObject *Sender) |
Zapis danych "linia po linii"
Aby uzyskać większą kontrolę podczas zapisu należy skorzystać z dostępnych w języku C++ klas obsługujących zapis danych do pliku: klasa ofstream (obsługa zapisu danych do pliku) lub klasa fstream (obsługa odczytu/zapisu danych z/do pliku).
Poniższy przykład przedstawia nam przykład zapisu danych do pliku "linia po linii". Na formularzu mamy umieszczone pole Edit, tworzymy dla niego zdarzenie OnKeyDown, jeżeli w tym polu wciśniemy ENTER to jego zawartość zostanie dołączona na koniec pliku c:\katalog\plik.sav, jeżeli plik ten nie istnieje to zostanie utworzony.
Unit1.cpp |
#include <fstream.h> |
Odczytywanie danych z plików tekstowych
Na początek utwórzmy na dysku c katalog katalog, a w nim plik plik.ext, który posłuży nam do nauki odczytu. Wprowadzamy do niego następujące dane (dane dokładnie tak jak poniżej) np. za pomocą Notatnika:
plik.ext |
123 43 22 |
Odczyt danych "linia po linii"
Najprostszym sposobem na przeprowadzenie operacji odczytu z pliku "linia po linii" jest wstawienie na formularz komponentu Memo lub RichEdit (można go ukryć, jeżeli nie powinien być widoczny - Visible = false), załadowanie do niego pliku i np. wyświetlenie każdej linii w komunikacie (oczywiście wyświetlanie takich komunikatów nikomu się nie przyda, ale ma to na celu tylko przedstawienie sposobów odczytu):
Unit1.cpp |
void __fastcall TForm1::Button1Click(TObject *Sender) |
Aby uzyskać większą kontrolę podczas zapisu należy skorzystać z dostępnych w języku C++ klas obsługujących odczyt danych z pliku: klasa ifstream (obsługa odczytu danych z pliku) lub klasa fstream (obsługa odczytu/zapisu danych z/do pliku).
Unit1.cpp |
#include <fstream.h> |
Odczyt danych oddzielonych białymi znakami (ang. whitespace), czyli spacjami, tabulatorami lub znakami końca wiersza
Unit1.cpp |
#include <fstream.h> |
Odczyt i zapis danych z/do plików tekstowych
Za pomocą klasy fstream możemy równocześnie realizować
odczyt i zapis danych. Otworzenie pliku do odczytu i zapisu wykonuje się tak:
Unit1.cpp |
fstream iofile("c:\\katalog\\plik.ext", ios::in | ios::out); |