РАБОТА С ФАЙЛАМИ

 

Среда 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);

}

//---------------------------------------------------------------------------

 

Сохраните проект и проверьте его работу. Если ошибок в проекте нет, сделайте отчуждаемое приложение.