РАБОТА С ФАЙЛАМИ
Среда 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); } //---------------------------------------------------------------------------
Сохраните проект и проверьте его работу. Если ошибок в проекте нет, сделайте отчуждаемое приложение.
|