![]() |
| |||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||
О проекте
|
Тема: Примеры решения творческих задач.Рассмотрите решение творческих заданий учащихся. Наберите программы на компьютере и просмотрите их действие. Подумайте, как ребятам удалось придумать и выполнить такие работы. Эти программы помогут Вам определиться с выбором своей творческой работы. Задача 1. С помощью нетипизированного файла проанализировать файлы с расширением .mp3 в заданном пользователем каталоге и создать текстовый файл, содержащий следующую информацию: название песни, исполнитель, имя файла.
Задача 2. С помощью нетипизированного файла проанализировать файлы-архивы (архиватор WinRar) и вывести на экран имена заархивированных файлов.
Задача 3. С помощью нетипизированного файла преобразовать файл c расширением .BMP следующим образом: разделить рисунок на две части по горизонтали, верхнюю часть поместить на место нижней, разделить её на две части по вертикали и поменять их местами. Примечание. При исследовании файлов с расширением ВМР выяснилось следующее их описание в зависимости от количества употребляемых цветов: 16 цветов - 118 байт, 256 цветов - 1086 байт, 24 бита - 55 байт. Это количество байт влияет на значение переменное Кol в программе.
Задание. Выбрав какую-либо категорию файлов, проанализировать их в своей программе, пользуясь возможностями обработки нетипизированного файла, и решить некоторую поставленную Вами задачу. Протестированную программу и листинг покажите учителю для оценки. Приготовьте рабочие программы и оцененные листинги для проверки учителем. Проверьте свои знания по теме, ответив на следующие вопросы:
Для любознательныхДополнительные процедуры и функции работы с файламиРассмотрим некоторые процедуры работы с файлами, входящие в модуль Dos. Напомним, что для его подключения требуется указать
Ряд свойств файла, хранящегося на диске, кодируются так называемыми атрибутами. Атрибуты файла записываются не в сам файл, а в информационный раздел каталога, в котором хранится файл. Для хранения атрибутов отводится один байт, единица в определенном бите которого означает наличие свойства, а нуль - отсутствие. Соответствие битов и свойств показывает схема, приведенная на рисунке. 0 - Только чтение readOnly=1, 1 - Скрытый файл Hidden=2, 2 - Системный файл Sysfile=4, 3 - Метка томаVolumeID=8, 4 - Подкаталог Directory=16, 5 - Архивный файл Arhive=32. Каждому атрибуту соответствует определенная константа, равная 2k, где k - номер бита. Эти константы описаны в модуле Dos, их значения и имена приведены на схеме. В целом байт атрибутов образуется как сумма соответствующих ему констант. Установка атрибута «только чтение» приводит к невозможности изменения содержимого файла или его удаления. Скрытые файлы игнорируются некоторыми командами операционной системы, в частности, они не показываются по команде Dir. Системные файлы - файлы операционной системы Dos. Атрибут «Архивный» означает, что для этого файла не была создана резервная копия командой BackUp. Большинство файлов имеют этот атрибут. Определить атрибуты файла можно с помощью процедуры
которая возвращает переменную Attr, содержащую код атрибутов файла. Например, проверить свойство «только для чтения» можно процедурами
Установка требуемых атрибутов файла производится процедурой
Процедуры для поиска на диске требуемых файлов используют специальный тип записи Seachrecord, определенный в модуле Dos. Запись
Первое поле записи - массив Fill - используется операционной системой и не должно изменяться в пользовательских программах. Содержание поля Attr - атрибуты файла, рассмотренные выше. Поле Time содержит время записи файла в упакованном виде. Упакованный вид записи времени может быть получен из даты, часов, минут, секунд и сотых долей секунды процедурой РасkTime. Size - размер файла в байтах. Name - имя файла, включая разделительную точку и расширение. Процедура
ищет в каталоге первый файл, удовлетворяющий заданной спецификации. Параметры SeachPath и Аttr содержат исходные данные для поиска. Возвращаемый результат поиска - Seachresult. SeachPath - строка, содержащая полное имя файла, в том числе каталог, в котором необходимо искать файл, и имя файла. Имя файла (но не путь) может содержать символы звездочки и вопросительного знака, которые, соответственно, заменяют любую последовательность символов или один произвольный символ. Если путь не приводится, поиск идет в рабочем каталоге. Следовательно, SeachPath = '*.dat' указывает на все файлы с расширением "dat" в текущем каталоге. Процедура FindNext(Seachres) употребляется только после процедуры FindFirst и продолжает последовательно поиск файлов с определенным процедурой FindFirst шаблоном. Функция FSeach(SeachString, DirList) ищет файл, заданный строкой SeachString, в заданном списке каталогов DirList. Список каталогов записывается так же, как в команде DOS Path, то есть различные каталоги разделены точкой с запятой. Результат этой функции - полное имя файла, если он найден по указанным путям. Функция FExpand(FileName), получив имя файла FileName, расширяет его до полного имени, используя для этого текущий каталог. Если в качестве FileName задано имя с полным путем, функция не изменяет его. Если задано только имя файла, то дописывается текущий каталог. Если запись FileName начинается с символа "обратный слэш", то берется текущий диск и к нему дописывается имя FileName. Если запись FileName начинается с символов "..", то берется часть текущего каталога на уровень выше. Процедура FSplit(WholeFileName, Dir, Name, Ext), получив в качестве аргумента полное имя файла WholeFileName, разделяет его на три составные части и возвращает переменные параметры Dir - каталог, Name - имя файла, Ext - расширение. Для каталога, имени файла и расширения в модуле DOS предусмотрены специальные типы - строки ограниченной длины: PathStr, NameStr, ExtStr. Обратим внимание, что типизированные переменные пишутся в файл в том виде, в каком они используются в памяти ЭВМ. Если мы пытаемся прочитать содержимое такого файла обычными средствами DOS, например, нажав F3 в Norton Commander, или непосредственно в среде Паскаль, то каждый байт этих записей воспроизведется как соответствующий символ кодовой таблицы ASCII. Например, если файл имеет байтовый тип, и в него пишутся числа 65, 66, 67, то при его чтении мы увидим АВС. Такая запись данных компактна и удобна, если создаваемые файлы читаются другими программами, для которых эта кодировка естественна. В тех случаях, когда файлы предназначены для просмотра человеком, требуется перевод данных в текстовую форму. Внешние устройства в качестве файлововСвязь с внешними устройствами в языке Паскаль осуществляется также через файловые переменные. В Турбо Паскале существует два типа внешних устройств: устройства операционной системы и текстовые устройства. Устройства операционной системы, с которыми осуществляется обмен информацией, могут быть описаны как файлы со стандартными именами. Эти имена следующие: CON - консоль (клавиатура, дисплей). С этим устройством стандартно связаны файловые переменные Input и Output. LPT1, LPT2, LPT3 - печатающие устройства. Если в системе один принтер, то он будет иметь имя LPT1. Если в программе используется стандартный модуль Printer (указан в разделе Uses), можно использовать для вывода на принтер стандартную файловую переменную Lst. PRN - синоним LPT1. COM1, COM2 - имена двух портов. AUX - синоним COM1. NUL - фиктивное внешнее устройство. К текстовым устройствам относятся устройства, не поддерживаемые операционной системой или имеющие другие способы обращения. Например, устройство CRT, поддерживаемое стандартным модулем Сrt. Оно эквивалентно CON в операционной системе, но более быстродействующее и позволяет использовать разные цвета и окна. С текстовым устройством нельзя связаться процедурой assign. Для связи с ним служит специальная модификация этой процедуры, например, для связи с устройством CRT следует использовать процедуру AssignCrt в модуле Crt. | |||||||||||||||||||||||||||||||||||||||||||||
Проект «Pascaler» лучший на ХI Всероссийской конференции молодых исследователей с международным участием «Шаг в будущее», Россия, Москва, 12 – 16 апреля 2004г.
|