Материал к практической работе по МДК 01.02
методическая разработка по информатике и икт на тему
В данном руководстве к практичекому уроку содержится материал для проведения лабораторной работы по теме "Работа с файлами в С++ Builder. Разработка приложения "Файловый менеджер".
Материал содержит краткую необходимую информацию, дифференцированное оценивание практичекой работы.
Скачать:
Вложение | Размер |
---|---|
К практичекой работе | 151.5 КБ |
Предварительный просмотр:
САНКТ-ПЕТЕРРБУРГСКИЙ КОЛЛЕДЖ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ
КОНСПЕКТ ПРАКТИЧЕСКОГО ЗАНЯТИЯ
ПО ТЕМЕ:
«Работа с файлами в С++ Builder.
Разработка приложения «Файловый менеджер»
Разработала мастер п/о
Матысик И.А.
Санкт-Петербург, 2012
Конспект практического занятия по приложению «Файловый менеджер»
Матысик И.А.
Предмет: Лабораторная работа по МДК 01.02.
«Прикладное программирование»
Мастер п/о: Матысик И.А.
Тема занятия: Работа с файлами в С++ Builder.
Разработка приложения «Файловый менеджер»
Тип урока: Комбинированный урок
Продолжительность занятия: 90 минут
Цели:
Знакомство с возможностями встроенных стандартных компонентов среды C++ Builder для обработки файловой структуры
Освоение методов и алгоритмов поиска одного и группы файлов
Разработка прикладного приложения, реализующего основные функции файлового менеджера по обработке файловой системы
Студенты смогут:
Закрепить на конкретном примере полученные теоретические знания по МДК 01.02 «Прикладное программирование» при изучении компонентов обработки файловой системы
Выполнять основные действия с файлами как объектами операционной системы
Обрабатывать информацию каталогов и дисков
Освоить новые приемы разработки графического интерфейса приложения
Выполнить отладку и тестирование приложения
Применить новые приемы программирования и закрепить освоенные технологии написания программного кода
Выполнять оптимизацию программного кода
Выявлять слабые и сильные стороны своего проекта
Оборудование:
ПК, мультимедийный проектор, рабочие места студентов с ПК.
Программное обеспечение
Интегрированная среда разработки программного обеспечения C++ Builder
Операционная система Window XP
Конспект практического занятия по приложению «Файловый менеджер»
Матысик И.А.
Технологическая карта практического занятия
Организационный момент 3 минуты. Проверка присутствующих и проверка наличия конспекта. Сообщение темы занятия «Работа с файлами в С++ Builder. Разработка приложения «Файловый менеджер» 2 минуты
Изложение теоретического материала с использованием презентации, методического пособия и раздаточного материала 30 минут
Постановка задачи на выполнение практической работы с указанием дифференцированного оценивания данной работы 10 минут
Практическая работа студентов за рабочими местами для реализации поставленной задачи – 30 минут
Проверка выполненного задания и выставление оценок 10 минут
Подведение итогов занятия 5 минут
Конспект практического занятия по приложению «Файловый менеджер»
Матысик И.А.
Теоретический материал
Компонент просмотра списков дисков DriveComboBox
Используется для установки нужного текущего диска. Представляет собой комбинированный список, содержащий все установленные в системе дисковые накопители. Компонент имеет свойства компонента ComboBox (Items, ItemsIndex, Text и др.), но имеет и дополнительные к ним:
char Drive – выбранный диск. Доступно только на этапе выполнения для чтения и записи. Если диск отсутствует в системе, то команда присвоения игнорируется.
Рис. 1. Компонент DriveComboBox
DirList – используется для связи с компонентом DirectoryListBox, чтобы при смене диска в компоненте DriveComboBox происходило обновление содержимого компонента DirectoryListBox.
Компонент просмотра папок DirectoryListBox
Используется для просмотра и перемещения по дереву каталогов. Компонент имеет свойства:
String Directory – текущий каталог. Доступно только при выполнении приложения для чтения и записи.
DirLabel – отображение текущего каталога в компоненте
TLabel, который необходимо установить на форму и выбрать его в этом свойстве.
Рис. 2. Компонент DirectoryListBox
char Drive – буква текущего диска. Свойство используется для связи с компонентом DriveComboBox. Обычно это свойство изменяют у DirectoryListBox при возникновении событии OnChange компонента DriveComboBox. Если выбрать недоступный диск, то возникает аварийное завершение приложения. В этом случае надо использовать конструкцию try.
void __fastcall TForm1::DriveComboBox1Change(TObject *Sender)
{
try
{
Form1->DirectoryListBox1->Drive=Form1->DriveComboBox1->Drive;
}
catch (...)
{ ShowMessage("Вы выбрали недоступный диск"); }
}
Конспект практического занятия по приложению «Файловый менеджер»
Матысик И.А.
Работа с дисками
int DiskSize(Byte d) – возвращает размер диска в байтах, заданного параметром: 0 – текущий, 1 – a, 2 – b и т.д. Функция возвращает -1, если указанного диска (можно использовать для цикла по номерам дисков).
int DiskFree(Byte d) – возвращает свободное место на диске в байтах. Во всем остальном данная функция аналогична функции DiskSize().
int getdisk() – возвращает номер текущего логического диска (0 – диск А).
int setdisk( int d) – устанавливает текущим диск с номером d. Если диск отсутствует, то текущим остается прежний диск. Функция возвращает максимальный номер диска, установленного в системе.
Работа с папками
bool SelectDirectory (“Заголовок”, “Корневой каталог”, String Directory) – вызов стандартного диалога выбора каталога. Параметр «Заголовок» задает строку указание пользователю, параметр «Корневой каталог» задает папку, только внутри которой пользователь может выбирать папки. Если указать пустую строку или несуществующий каталог, то в окне отобразиться все дерево папок. Выходной параметр «Directory» содержит результат выбора пользователя. Функция возвращает true, если пользователь выбрал папку и нажал Ok, иначе – false.
Рис.3. Вызов стандартного диалога выбора папки
#include
String dir;
void __fastcall TForm1::Button1Click(TObject *Sender)
{
if (SelectDirectory(“Укажите каталог", "c:\\", dir))
Form1->Edit1->Text=dir;
else ShowMessage("Вы не указали каталог");
}
bool DirectoryExists (“путь”) – проверяет существование каталога.
bool RemoveDir(“путь”) – удаление существующего каталога. Он должен быть пустым и не являться текущим.
Конспект практического занятия по приложению «Файловый менеджер»
Матысик И.А.
bool CreateDir(“путь”) – создает каталог по указанному пути. Возвращает true при отсутствии ошибки. Ошибки могут возникнуть при отсутствии каталога, внутри которого создается новый или создаваемый каталог уже существует.
bool ForceDirectories(“путь”) – создает всю цепочку каталогов, указанную параметром, даже если промежуточные каталоги не существуют. Ошибки могут возникнуть только при отсутствии диска или прав доступа.
String GetCurrentDir() – возвращает полное имя текущего каталога.
void ChDir(“путь”) – смена текущего каталога на необходимый.
int GetSystemDirectory(путь, размер) – в параметр «путь» записывается путь к системному каталогу без завершающего обратного слеша. Параметр «размер» - максимальная длина пути.
char s[MAX_PATH];
GetSystemDirectory(s, MAX_PATH);
Form1->Edit1->Text=s;
int GetWindowsDirectory(путь, размер) – в параметр «путь» записывается путь к каталогу Windows, в остальном – аналогична функции GetSystemDirectory.
Работа с файлами
bool DeleteFile(“путь”) – удаление файла без перемещения его в корзину. В случае ошибки возвращает значение false.
bool RenameFile(“старое имя”, “новое имя”) - переименование или перенос файла. Ошибки могут появляться при отсутствии файла со старым именем или имеющимся файлом с новым именем.
int FileAge(“путь”) – дата последнего изменения файла, в случае ошибки возвращает -1. Для преобразования типа int в тип даты TDateTime используется функция TDateTime FileDateToDateTime(int x).
Form1->Caption= DateTimeToStr(FileDateToDateTime(FileAge("Unit1.cpp")));
FileSetDate(“путь”, int период) - установить дату и время последнего изменения файла. Для преобразования даты и времени из типа TDateTime в тип int используется функция int DateTimeToFileDate( TDateTime период).
FileSetDate("My.dat", DateTimeToFileDate(Now()));
int FileGetAttr(“путь”) – получение атрибутов файла как результат работы- целое число – совокупность атрибутов у этого файла. Атрибуты из таблицы
Константа | Значение | Пояснение |
faReadOnly | 0x01 | Файл только для чтения |
faHidden | 0x02 | Невидимый файл |
faSysFile | 0x04 | Системный файл |
faVolumeID | 0x08 | Идентификатор диска |
faDirectory | 0x10 | Каталог |
faArchive | 0x20 | Архивный файл |
faAnyFile | 0x3f | Любой файл |
Конспект практического занятия по приложению «Файловый менеджер»
Матысик И.А.
bool FileSetAttr(“путь”, атрибуты) – установить атрибуты файла.
bool FileExists(“путь”) – проверяет существование конкретного файла.
int FindFirst(), int FindNext() и int FindClose() - поиск группы файлов, подходящих под шаблон. При работе используют структуру:
struct TSearchRec
{ int Time; //Время создания файла
int Size; //Размер файла в байтах
int Attr; //Атрибуты файла
AnsiString Name; //имя файла
int ExcludeAttr; //Для внутреннего использования
int FindHandle; //Дополнительные сведения
} ;
int FindFirst(“шаблон”, атрибуты, TSearchRec rez) – начать поиск. В шаблоне можно использовать символы * или ?. Атрибут выбирается из таблицы атрибутов. Если выбрать faAnyFile, то будут искаться все файлы и каталоги, если 0, то только обычные файлы. Функция возвращает 0, если первый подходящий файл найден. Информация о нем помещается в поля структурной переменной rez.
int FindNext(TSearchRec rez) – продолжить поиск с теми же параметрами. Функция вернет 0, если нашелся еще один подходящий файл, информация о котором запишется в параметр. Если вернет ненулевое значение – подходящих файлов нет.
int FindClose(TSearchRec rez) – завершить поиск.
В общем виде поиск выполняется фрагментом:
TSearchRec rez; //информация о найденном файле
if (FindFirst(“шаблон”, атрибуты, rez)==0) //нашли первый
do
{
//Действия с найденным файлом, информация о котором в переменной rez
}
while (FindNext(rez)==0); //продолжить поиск
else ShowMessage("Таких файлов нет");
FindClose(rez); //Завершить поиск
String FileSearch(“имя файла”, “список каталогов”) – поиск файла, заданного только именем, в списке каталогов. В списке каталоги разделяются «;». Файл сначала ищется в текущем каталоге, а затем в списке каталогов. Если файл найден в текущем каталоге, функций возвращает его имя без пути к нему. Если файл найден в каталогах из списка, функция возвращает его полное имя с путем. Если файл не найден, то возвращается пустая строка.
Конспект практического занятия по приложению «Файловый менеджер»
Матысик И.А.
Практическое задание
Разработать приложение «Файловый менеджер» с использованием различного вида списков для обработки файловой структуры текущей папка. Применять различные алгоритмы поиска одного и группы файлов, подходящих под условие поиска. Исследовать структуру и содержимое каталогов и дисков. Оформить интерфейс для удобного управления приложением.
На «Удовлетворительно»
Расположить на форме списки: DriveComboBox, DirectoryListBox, ComboBox, ListBox, а так же необходимое количество элементов интерфейса.
Выполнить:
- в компоненте DriveComboBox отображать список имеющихся в системе накопителей, а в компоненте DirectListBox - дерево папок текущего диска;
- щелчком по компоненту DirectListBox отобразить в компоненте ComboBox имеющиеся расширения файлов в текущей выбранной папке без повторений;
- щелчком по компоненту ComboBox в компонент ListBox выводятся все файлы текущей папки, имеющие выбранное расширение;
- щелчком по компоненту ListBox выводится вся информация о выбранном файле: полное имя, дата, размер и атрибут;
- для выбранного диска выводится информация о его свободном и занятом пространстве в индикаторе FGauge;
- для выбранной папки указывается количество файлов и их общий объем.
На «Хорошо»
Над файлами произвести операции удаления, переименования, изменить только имя, изменить только расширение и другие. Входные данные вводятся пользователем в подходящих элементах интерфейса.
На «Отлично»
На отдельной форме организовать расширенный поиск файлов в выбранной папке: по атрибутам (флажки), по дате создания (радиокнопки: любая, текущая, последняя неделя, последний месяц, последний год, по диапазону), по размеру, по шаблону имени. Использовать подходящие элементы интерфейса.
Конспект практического занятия по приложению «Файловый менеджер»
Матысик И.А.
Рис. 4. Использование различного вида списков для отображения состояния текущей папки
Контрольные вопросы
Перечислить основные свойства компонентов работы с файловой системой
Записать программный фрагмент для осуществления поиска одного файла или группы файлов по маске
Указать методы управления атрибутами файла
Указать основные операции с диском
Перечислить команды обработки каталогов
Указать основные методы обработки файлов
Конспект практического занятия по приложению «Файловый менеджер»
Матысик И.А.
Приложение №1
Основные функции работы с дисками, каталогами и файлами
Функция | Назначение |
Операции с дисками |
DiskSize | Размер диска в байтах |
DiskFree | Свободное место на диске в байтах |
getdisk | Номер текущего логического диска |
setdisk | Установить нужный текущий диск |
Операции с папками |
SelectDirectory | Диалог выбора каталога |
DirectoryExists | Проверка существования каталога |
RemoveDir | Удаление существующего каталога |
CreateDir | Создание каталога |
ForceDirectories | Создание цепочки каталогов |
GetCurrentDir | Полное имя текущего каталога |
ChDir | Смена текущего каталога на необходимый |
GetSystemDirectory | Путь к системному каталогу |
GetWindowsDirectory | Путь к каталогу Windows |
Операции с файлами |
DeleteFile | Удаление файла |
RenameFile | Переименование или перенос файла |
FileAge | Дата последнего изменения файла |
FileSetDate | Установить дату и время последнего изменения |
FileGetAttr | Получение атрибутов файла |
FileSetAttr | Установить атрибуты файла |
FileExists | Поиск одного файла |
FindFirst | Поиск первого файла из группы |
FindNext | Поиск следующего файла из группы |
FindClose | Завершить поиск файла из группы |
FileSearch | Поиск файла из списка каталогов |
Операции с именами файлов |
ExtractFileDrive | Имя диска из полного пути |
ExtractFilePath | Часть пути до имени файла |
ExtractFileName | Имя и расширение файла |
ExtractFileExt | Изменение расширения файла |
ProcessPath | Разбиение полного имени на составляющие |
Команды преобразования дат |
FileDateToDateTime | Тип файловой даты int в тип TDateTime |
DateTimeToFileDate | Тип TDateTime в тип файловой даты int |
По теме: методические разработки, презентации и конспекты
МАТЕРИАЛ ДЛЯ ПРАКТИЧЕСКОЙ РАБОТЫ В 10 КЛАССЕ " ЦЕНТРЫ МИРОВОГО ХОЗЯЙСТВА"
РАБОТА СОСТОИТ ИЗ ДВУХ СЛАЙДОВ ДЛЯ ИТЕРАКТИВНОЙ ДОСКИ, ВКЛЮЧАЮЩИХ СТАТИСТИЧЕСКИЙ МАТЕРИАЛ В ВИДЕ ТАБЛИЦЫ И ПЕРЕЧЕНЬ ЗАДАНИЙ К РАБОТЕ...
Справочный_материал_для_практической_работы_Население_России (8-9 класс)
Справочные материалы для организации практической работы в 8-9 классе по теме "Население России". Материалы переписи населения 2010 года....
материал для практической работы в Painte
копирование,мазайка и т.д....
Дидактический материал для практической работы на уроках русского языка в классах с полиэтническим составом
В помощь учителям русского языка...
Материал к практической работе по экологии 7 класс Оценка качества питьевой воды
Материал к практической работе по экологии 7 класс "Оценка качества питьевой воды"...
Подборка материала для практической работы психолога, дефектолога
Подборка материала для практической работы психолога, дефектолога...
Материал для практической работы "Бином Ньютона. Треугольник Паскаля"
Материал для практической работы "Бином Ньютона. Треугольник Паскаля"...