Работа с файлами
Среда C++ Builder предлагает три способа работы с файлами: работа с потоками в стиле С, работа с потоками в стиле С++ и с помощью методов диалоговых компонентов среды разработки.
Решим следующую задачу: создадим программу «Блокнот», позволяющую набрать текст, сохранить его и считать подготовленный текстовый файл.
Запустите систему программирования C++ Builder. Разместите на форме многострочное поле ввода Memo (в нем будет набираться текст) и четыре кнопки Button, которым задайте названия: "Очистить", "Записать", "Прочитать", "Выход". Для сохранения и поиска файлов воспользуйтесь компонентами SaveDialog и OpenDialog. Разместите эти компоненты на любом месте на форме, так как они являются невизуальными. Возможный вид формы показан на рис. 4.
Рис. 4
С компонентом Memo вы уже работали, но рассмотрим его свойства и методы подробнее.
Метод Clear( ) очищает окно ввода.
Доступ к строкам, размещенным в окне, осуществляется через свойство Lines, представляющее массив строк.
Свойство Count хранит число строк (количество элементов массива). Отсчет номеров строк начинается с нуля.
Метод Add(s) добавляет строку s в список.
Метод Delete(n) удаляет строку с номером n.
Метод Insert (n, s) вставляет новую строку s между элементами списка в позиции n.
Метод SaveToFile(“путь/имя_файла”) позволяет сохранить данные, хранящиеся в поле Memo, в указанный файл.
Метод LoadFromFile(“путь/имя_файла”) позволяет считать данные, хранящиеся в указанном файле, в поле Memo.
Создадим процедуру обработки щелчка по кнопке "Очистить". Текст процедуры представлен ниже.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Memo1->Clear();
}
//---------------------------------------------------------------------------
Создадим также процедуру обработки щелчка по кнопке "Выход". Используем для завершения работы с приложением метод Close.
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Form1->Close();
}
//---------------------------------------------------------------------------
Прежде чем разработать процедуры обработки оставшихся событий, опишем работу с диалоговыми окнами SaveDialog и OpenDialog.
Для вызова окон используется метод Execute( ).
Свойство FileName хранит имя файла.
Свойство Filter позволяет настроить фильтры для поиска файлов. Свойство DefaultExt позволяет определить расширение, которое автоматически будет добавлено к имени файла.
Создадим процедуру обработки щелчка по кнопке "Сохранить". Текст процедуры приведен ниже.
void __fastcall TForm1::Button3Click(TObject *Sender)
{
SaveDialog1->DefaultExt="txt";
if (SaveDialog1->Execute( ))
Memo1->Lines->SaveToFile(SaveDialog1->FileName);
}
//---------------------------------------------------------------------------
Создадим процедуру обработки щелчка по кнопке "Прочитать". Текст процедуры представлен ниже.
void __fastcall TForm1::Button2Click(TObject *Sender)
{
OpenDialog1->DefaultExt="txt";
if (OpenDialog1->Execute( ))
Memo1->Lines->LoadFromFile(OpenDialog1->FileName);
}
//---------------------------------------------------------------------------
Сохраните проект и проверьте его работу. Если ошибок в проекте нет, сделайте отчуждаемое приложение.