КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Типы файловых переменных
Практическая работа 5. Файлы Тема: строковые переменные End Begin Begin clrscr; writeln (‘введите список слов’); for i:=1 to s readln (list[i]); repeat p:=true; for i:=s downto 2 do if list[i] < list[i-1] then b:=list[i]; list[i]:=list[i-1]; list[i-1]:=b; p:=false until p:=true; writeln (‘упорядоченный список слов:’); for i:=1 to s do writeln (list[i]) end.
Задания к работе 4 Задание 1.
Файл - это последовательность однотипных компонентов. Компонентом файла может быть значение простого типа или структура, но не файл. Файл может быть компонентом другой структуры, но ни прямо, ни косвенно не может входить в состав другого файла. Файл отличается от одномерного массива: 1) размещением на внешнем носителе; 2) произвольным в пределах носителя числом компонентов; 3) доступом к одному текущему компоненту в каждый момент времени. В паскале работа с файлами осуществляется через специальные типы. Это файловые типы, которые определяют тип файла, то есть фактически указывают его содержимое. С помощью этой переменной, которой присвоен необходимый тип, и осуществляется вся работа с файлами - открытие, запись, чтение, закрытие и т.п. При работе с файлами существует определенный порядок действий, которого необходимо придерживаться. Вот все эти действия: 1. Создание (описание) файловой переменной; 2. Связывание этой переменной с конкретным файлом на диске или с устройством ввода-вывода (экран, клавиатура, принтер и т.п.); 3. Открытие файла для записи либо чтения; 4. Действия с файлом: чтение либо запись; 5. Закрытие файла. В Паскале различают текстовые, типизированные и нетипизированные файлы: 1. Text - текстовый файл. Из переменной такого типа мы сможем читать строки и символы. 2. File of _любой_тип_ - так называемые "типизированные" файлы, то есть файлы, имеющие тип. Этот тип определяет, какого рода информация содержится в файле и задается в периметре _любой_тип_. Например: F: File of Integer; 3. File - нетипизированный файл. Когда мы указываем в качестве типа файла просто File, то есть без типа: F: File; то получаем "нетипизированный" файл, чтение и запись в который отличается от работы с файлами других типов. Эти действия производятся путем указания количества байт, которые нужно прочитать, а также указанием области памяти, в которую нужно прочитать эти данные. При работе с файлами ключевым понятием является понятие файловой переменной. Файловая переменная не является представлением одного конкретного файла. В зависимости от класса файла ее можно объявить одним из трех способов: var <ФП>: text; <ФП>: file of <тип компонентов>; <ФП>: file; Самый универсальный шаг. Выполняется одной и той же процедурой для всех типов файлов, а именно процедурой Assign: Assign (_переменная_файлового_типа_, 'путь к файлу'); Процедура assign должна быть первой среди действий работы с файлом. Если файл находится в текущей директории, то путь к нему можно не указывать. Открытие файла - это уже более усложненный процесс, нежели связывание с ним переменной. Этот процесс заключается в использовании одной из трех имеющихся процедур: 1. Reset (_любая_файловая_переменная_); Открывает файл на чтение. В качестве параметра - файловая переменная любого из перечисленных выше типов. Это может быть текстовый, типизированный либо не типизированный файл. В случае с текстовым файлом, он открывается только на чтение. В случае с типизированным и не типизированным файлом - он открывается на чтение и запись. 2. Append (T: Text); Эта процедура открывает текстовый файл (только текстовый!) на запись. Reset при задании параметра типа Text не позволит писать в него данные, открыв файл лишь для чтения. То есть если вы используете текстовый файл и хотите производить в него запись, нужно использовать Append. Если чтение - Reset. В остальных случаях дело обходиться одной процедурой Reset. Также обратите внимание, что если вы до этого уже открыли файл на чтение, вам не нужно закрывать его и открывать снова на запись. В этом случае файл закрывается сам и открывается заново. При записи данных в файл при открытии его с помощью этой процедуры они записываются в конец файла. 3. ReWrite (F) - создает новый файл либо перезаписывает существующий. Будьте осторожны, если не хотите случайно удалить нужный файл. Файл, открытый с помощью этой процедуры будет полностью перезаписан. Закрытие файла производиться с помощью процедуры Close(F), где F - это переменная файлового типа. Эта процедура одна для всех типов файлов. Чтение файлов производится с помощью процедур Read и Readln. Они используются так же, как и при чтении информации с клавиатуры. Отличие лишь в том, что перед переменной, в которую помещается считанное значение, указывается переменная файлового типа (дескриптор файла): Read(F, C); Здесь F - дескриптор файла, C - переменная (Char, String - для текстовых, любого типа - для типизированных файлов). Функция поверки на конец файла - Eof(F): Boolean;. В качестве параметра - файловая переменная любого типа. Функция возвращает TRUE если достигнут конец файла и FALSE иначе. Запись в файлы производиться точно так же, как и запись на экран - с помощью процедур Write и Writeln. Как и в случае с чтением, перед записываемой в файл переменной указывается дескриптор файла: Write(F, S); Здесь F - дескриптор, S - переменная. При этом, естественно, переменная должна соответствовать типу файла. Пример. Пусть имеем текстовый файл. Распечатаем его и посчитаем количество пробелов: var T: Text; С: Char; Spaces: Word; S: String[79]; { 79-макс. длина пути в DOS }
Дата добавления: 2015-06-04; Просмотров: 832; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |