Практическая работа «простейший плеер»

Межпредметные связи

Снабжающие Предмет: Базы объектно-ориентированного программирования Тема курса 5.10 Создание главного и контекстного меню
Снабжаемые Предмет: Базы объектно-ориентированного программирования Тема курса 6.1 Текстовые файлы. Диалоги

Оборудование урока

Наглядные пособия Опорный конспект
Раздаточный материал карта
Технические средства обучения ПК, TurboPascal 7.0.
Литература: главная 1. Гофман В., Хомоненко А «Delphi 6»
Дополнительная

Содержание урока

№ эле-мента Элементы урока, учебные вопросы, формы и способы обучения Дополнения, трансформации
1. Организационный (2 мин) 1 Приветствие обучающихся 2 Проверка готовности учебной аудитории к учебным занятиям 3 Проверка готовности обучающихся к учебно-практической деятельности 4 Проверка отсутствующих, заполнение учебного издания 5 хода урока и Постановка цели
2. Проверка домашнего задания(20 мин) Личный опрос: 1. Компоненты меню? 2. Создание главного? 3. контекстного меню
3. Объяснение нового материала(40 мин) Тема урока: Файлы. Классификация файлов. Текстовые файлы Замысел семинра: Файлы. Классификация файлов. Текстовые файлы
4. Закрепление взятых знаний(10 мин) 1.Файлы. 2.Классификация файлов. 3.Текстовые файлы
Подведение итогов урока(6 мин)
Постановка домашнего задания(2 мин) Хомоненко А.Д. «Delphi», стр. 65-66

Учитель __________ Р.С. Раева

программирования:Основы и Дисциплина алгоритмизации

Раздел 6 Файлы. Классификация файлов

Тема курса:6.1 Текстовые файлы. Диалоги

Тема урока: Файлы. Классификация файлов. Текстовые файлы

Эта статья ориентирована на новичков, каковые хотят обучиться трудиться с файлами в дельфи. В статье рассматриваются стандартные I/O операции с файлами, методы и типичные ошибки их предотвращения. Intro В дельфи файл представляется как именованная структура данных, т.е. последовательность однотипных данных. Грубо говоря это громадный массив, число элементов которого фактически ни чем не ограничено. Для облегчения работы с файлами в дельфи, любой отдельный файл воображает файловая переменная. Раз уж это переменная, то она обязана быть обьявлена как переменная. Но обо всем по порядку. Step by step Step 1 — Обьявление файловой переменной Файловая переменная в общем виде обьявляется в разделе var приблизительно так: F: file of Type; К примеру: F: File of integer; Необходимо заметить, что текстовые файлы обьявляются мало По другому: F : TextFile; Да и по большому счету текстовые файлы особые. Кое-какие функции трудятся лишь с текстовыми файлами. Кроме этого возможно обьявить не только файл целых чисел(integer), текстовый файл либо файл какого именно или другого типа, но и файл собственного типа либо записи, поместив обьявление типа либо записи выше обьявления файловой переменной. К примеру: type TDay = (MON, TUE, WED, THU, FRI, SAT, SUN); var F : File of TDay; либо: type TDay = record Num : Integer; Name : String[200]; end; var F : в течении TDay; направляться обратить внимание, что протяженность строковых полей в записи должна быть четко выяснена (Name : String[200]) Step 2 — открытие и Назначение файла По окончании обьявления файловой переменной необходимо связать её с физическим файлом на диске. Сделать это возможно с помощью процедуры AssignFile: AssignFile(var F : File; FileName : String); К примеру: var F : TextFile; … begin AssignFile(F, text.txt); … По окончании исполнения процедуры файловая переменная F будет связана с файлом text.txt, находящимся в папке с программой. И все действия, создаваемые с переменной будут функционировать именно на данный файл. Но переменную возможно высвободить для предстоящего применения с другим файлом процедурой CloseFile, но об этом ниже. Сейчас нужно открыть файл, причем одним из нескольких способов, в зависимости от ваших потребностей. Создать новый либо перезаписать существующий возможно с помощью процедуры Rewrite(F). Открыть для записи в финиш файла возможно с помощью процедуры Append(F). А открытие файла для чтения осуществляет процедура Reset. Step 3 — Стандартные I/O опреации с файлами I/O — это операции ввода/вывода (input/output). Тут мы разглядим запись данных в чтение и файл этих данных. Сперва запись. Записать в файл возможно переменную либо константу того типа, которого был обьявлен файл. К примеру в случае если файл был обьявлен вот так F : File of Integer, то в него возможно будет записать эти лишь типа Integer. При попытке записать эти другого типа компилятор выдаст сообщение об неточности. Запись в файл осуществляется процедурами Write([var F : File]; P1; […,Pn]) и WriteLn([var F : File]; P1; […,Pn]). Вторая отличается от первой тем, что она по окончании записи параметра перемащает каретку на новую строчок, т.е. следующий параметр запишется на новой строчке. Вот пример применения процедур: var F : TextFile; Str : String; … Str := Some Text; WriteLn(F, Str); Write(F, это будет на новой стоке ); write(F, а это на данной же строке); … Чтение данных происходит благодоря процедурам Read([var F : File]; V1; […,Vn]) и ReadLn([var F : File]; V1; […,Vn]). Отличиаются они тем, что по окончании прочтения параметра процедурой ReadLn каретка перемещается на новую строчок, даже в том случае, если ещё были эти. Вот пример: var F : TextFile; Str : String; Str2 : String; Str3 : String; … Read(F, Str); ReadLn(F, Str2);//str2 будет содержать эти, идущие по окончании str Read(F, Str3);//str3 будет содержать эти, находящиеся на новой строчке по окончании str2 … Думаю не все так сложно. Step 4 — Закрытие файла Файловую переменную по окончании применения необходимо обьязательно высвободить, в противном случае программа не закроется и будет выдавать неточность. Кроме этого освобождение файловой переменной будет полезно тогда, в то время, когда вам необходимо трудиться с несколькими файлами последовательно, и по окончании работы с первым файлом возможно высвободить переменную и связать её с новым файлом. Освобождение файловой перменной делает процедура CloseFile(F : File). Примера я думаю не нужно, т.к. никаких изюминок у нее нет. Пример Я думаю новичку будет все же сложно будет без примеров разобраться в работе с файлами. Исходя из этого давайте расмотрим несложный пример программы, которая по нажатию одной кнопки будет запрашивать имя файла у пользователя и записывать содержимое TMemo. А по нажатию второй кнопки программа снова же будет запрашивать имя файла, просматривать от в том направлении записанные эти и помещать их в TMemo. Знаю, что чтение и запись в TMemo возможно организовать посредством особых способов. Но это всего лишь пример к статье. Вобщем кидайте на форму одну TMemo и две кнопки. Обработчик первой кнопки приведите к такому виду: procedure TForm1.Button1Click(Sender: TObject); var F : TextFile; FileName : String; i : Integer; begin FileName := InputBox(Имя файла, Введите имя файла, default.txt); AssignFile(F, FileName); Rewrite(F); for i := 0 to Memo1.Lines.Count do WriteLn(F, Memo1.Lines[i]); CloseFile(F); end; Это кнопка будет сохранять текстовый файл. Итак, в разделе var я обьявил три локальные переменные: F типа TextFile это и имеется файловая переменная для текстовых файлов; FileName типа String будет служить для хранения имени файла; И i типа Integer — для циклов. В первой строке я запрашиваю у пользователя имя файла. Во второй я связываю файловую переменную с физическим файлом на диске. Строки Rewrite(F) формирует новый файл либо перезаписывает существующий. ЧТо бы эти не заменялись а добавлялись в финиш файла эту строке необходимо заменить на Append(F). Потом идет цикл с 0 до количества всех строчков Memo1. В цикле содержимое все строчков Memo1 по порядку записывается в файл. Обратите внимание, что я использую WriteLn для записи новой строки. Если бы я применял Write, то все строки Memo1 в файле превратились в одну. Обработчик второй кнопки обязан смотреться приблизительно так: procedure TForm1.Button2Click(Sender: TObject); var F : TextFile; FileName, tmp : String; begin FileName := InputBox(Имя файла, Введите имя файла, default.txt); AssignFile(F, FileName); Reset(F); while not EOF(f) do begin ReadLn(F, tmp); Memo1.Lines.Add(tmp); end; CloseFile(F); end; Назначение локальных переменных в данной процедуре подобны предудыщим. Первая и вторая строки подобны строками из обработчика первой кнопки. Reset(F) — это я открываю файл для чтения процедурой Reset. Потом запускается цикл по всему файлу (while not EOF(F) do). Функция EOF(F : File) возвращает true в то время, когда достигнут финиш файла. В цикле читается одна строки из файла в переменную tmp и добавляется в Memo1. Вот и все, думаю достаточно легко. Но программу легко одурачить и привести к исключению. К примеру при чтении файла пользователь может задать имя несуществующего файла. Тогда появится неточность. Потом мы поболтаем о методах защиты программы от исключений Метод 1 — Несложный Само собой разумеется несложный, но достаточно действенный метод защиты возможно организовать посредством положенных блоков try — except и try — finally. Вы понимаете, что в случае если при исполнении инструкции в теле блока try — except происходит исключение, то исполнение предстоящих руководств останавливается и выполняется то, что находится между except — end. Но в случае если появилось исключение, а потом находится CloseFile(F), то эта процедура не выполняется и программа не сможет корректно трудиться и завершиться. Ответ данной неприятности — применение положенных try — except и try — finally. Вот пример var F : TextFile; S : String; … begin try try … Reset(F); ReadLn(F, S); … except MessageDlg(Неточность работы с файлом, mtError, [mbOk], 0); end; finally CloseFile(F); end; Но данный метод может не сработать, в случае если была попытка открытия несуществующего файла (появится искючение при исполнении CloseFile(F)). Метод 2 — Действенный Как мы знаем, что программа сама берет на себя обработку исключений. Но она не всегда делает это верно. Исходя из этого лучшим ответом было бы самому проконтролировать момент открытия файла. Для этого необходимо сперва отключить автоматическую обработку исключений директивой {I-}. А включить возможно так: {I+}. Позже свериться со значением функции IOResult. При успешном открытии файла она возвращает 0. Вот пример: {I-} Reset(F); {I+} if IOResult0 then begin MessageDlg(Файл +PChar(FileName)+ несуществует, mtError, [mbOk], 0); EXIT; //продолжать запрещено end; Все это засуньте в процедуру чтения файла (в примере выше) вместо строки Reset(F). Так же возможно застраховаться от сбоев засунув эту конструкцию в процедуру сохранения файла вместо строки Rewrite.

Практическая работа

Практическая работа «Несложный плеер»

Цель работы — создать программу, делающую следующие действия:

1. По окончании запуска программы в окне изображается музыкальный проигрыватель.

2. По щелчку мышью на кнопке Play воспроизвести выбранную мелодию.

3. Для выхода из программы нужно щелкнуть мышью на закрывающей кнопке в строчке заголовка.

Описание замысла разработки программы

1. Открыть новый проект.

2. Разместить на форме экземпляры компонентов: медиаплеер MediaPlayer, рисунок Image.

Рис. 5.

3. Выполнить следующие действия:

Таблица 4.

Выделенный объект Вкладка окна Object Inspector Имя свойства/ имя события Воздействие
Forml Properties Caption Установка имени формы Музыкальный проигрыватель
MediaPlayerl (Вкладка System) Properties AutoOpen Выберите значение True из раскрывающегося перечня
FileName Указать не полный путь к файлу, а относительно местоположения программы. К примеру, Prim.wav, то программа будет данный файл искать в папке, где сама пребывать.

4. Сохраните проект, запустите и протестируйте его.

5. Создать проигрывателю картину-фон, к примеру:

Рис. 6.

6. Сохранить картину-фон в файле, к примеру, Фон.Ьшр

7. Засунуть в плеер в качестве фона.

Продолжение таблица 4.

Выделенный объект Вкладка окна Object Inspector Имя свойства/ имя события Воздействие
Imagel Properties Picture AutoSize Посредством кнопки Load выберите ваш файл Фон.Ьтр и надавите ОК. В следствии на месте пунктирной каемки на форме покажется данный рисунок из файла. Выбрать значение True

8. Подобрать размер формы под размер изображения, само изображение установите в верхний левый угол, панель с кнопками медиаплеера поставить так, дабы соответствовала с рисунком фона, к примеру:

Учитель __________ Р.С. Раева

Несложные пробники


Также читать:

Понравилась статья? Поделиться с друзьями: