Работа с файлами в среде Turbo Pascal 7.0
учебно-методический материал по информатике и икт по теме
В системе Turbo Pascal 7.0 связь с внешними источниками , приемниками и носителями информации осуществляется только с помощью файлов.
Скачать:
Вложение | Размер |
---|---|
met_razr2.doc | 101.5 КБ |
Предварительный просмотр:
Государственное образовательное учреждение
дополнительного образования детей
Санкт – Петербургский центр детского (юношеского)
технического творчества
Методическое пособие
“Работа с файлами в среде
Turbo Pascal 7.0”
Автор : Беляева Г.И.
2014 год
Работа с файлами в среде Turbo Pascal 7.
Введение
В системе Turbo Pascal 7.0 связь с внешними источниками , приемниками и носителями
информации осуществляется только с помощью файлов. Традиционно под файлом понима-
ется поименованная совокупность данных на внешнем носителе (как правило,это – диск лю-
бого типа), однако в Turbo Pascal 7.0 этот термин трактуется более широко.
Файлом в ТР является любое внешнее устройство, являющееся приемником или источ-ником информации по своему назначению. Это может быть клавиатура, дисплей или принтер.
Такое устройство является логическим, так как в данном случае учитывается их назначение,
а не физические характеристики.
Тема 1. Файловый тип. Связь с внешним устройством.
В системе Turbo Pascal 7.0 имеется три вида файлов :
- текстовые;
- типизированные;
- нетипизированные;
Для обьявления файловых переменных необходимо в разделе VAR выполнить описание:
- Name_file : text -- для текстового файла с именем Name_file ;
- Name_file : of Name_type – для типизированного файла с именем Name_file
и типом его элементов Name_type ;
- Name_file : file - для нетипизированного файла с именем Name_file ;
После обьявления файловых переменных возможны операции над файлами. И самой пер-
вой из них является связь имени файловой переменной с конкретным файлом на диске :
Assing (Name_file , ‘C:\Program\TP\Bib\Dan.txt’)
В процедуре Assing используется имя файловой переменной, которое будет использовать-
ся в следующих операциях программы по обработке файлов, и полное имя этого файла на
диске в кавычках (маршрут его).
Вопросы по теме 1:
1. Какие типы файловых переменных обрабатываются средствами Turbo Pascal 7.0 ?
2. Как обьявить файловые переменные различных типов ?
3. Как указать на конкретный файл, подлежащий обработке средствами Turbo Pascal 7.0?
4. Чем отличается файловая переменная от конкретного файла на диске и для чего ее необхо-
димо вводить в программу ?
Задание по теме 1: Описать текстовый файл, находящийся в подкаталоге KLASS каталога
SH на диске D, с именем puple.pas , как файловую переменную ball .
Тема 2. Последовательность обработки файловых переменных.
После установки связи файловой переменной с конкретным файлом на диске можно при-
ступить к ее обработке, используя ее имя вместо громоздкого фактического имени на диске,
в качестве параметра в процедурах Turbo Pascal 7.0.
Последовательность обработки следующая :
- Открытие файла для чтения или записи ;
- Обработка файла процедурам и функциями Turbo Pascal 7.0 ;
- Закрытие файла;
При обращении к процедурам обработки файлов производится автоматическая
проверка на наличие ошибок Ввода - Вывода , и при их обнаружении программа преры-
вается и на экран выводится сообщение об ошибке. Коды ошибок отлавливает стандарт-
ная функция IoResult , которая возвращает значение, равное 0, если ошибок нет.
С помощью директив компилятора {$I+} и {$I-} автоматическую проверку ошибок
Ввода – Вывода можно включить или отключить. После отладки программы имеет смысл
директива - {$I-}.
Вопросы по теме 2:
- Какая последовательность обработки файловых переменных в Turbo Pascal 7.0 ?
- Как осуществляется проверка ошибок Ввода – Вывода ?
- Как можно программно отрегулировать контроль обнаружения ошибок Ввода – Вывода ?
Тема 3. Обработка текстовых файлов.
Текстовый файл открывается процедурами :
- Reset (Name_file) - только для чтения ;
- Rewrite (Name_file) - только для записи ;
- Append (Name_file) - для добавления новых записей ;
Доступ к текстовому файлу организуется последовательно, так как файл представляет
собой линейную последовательность строк и указатель при завершении ее считывания пере-
мещается к следующей строке.
Для считывания информации из файла используютя процедуры Read, ReadLn :
Read (Name_file, x1,x2..xn) – процедура выполняет чтение из файла с именем
Name_file в переменные x1, x2..xn;
В текстовом файле можно сохранять не только текст, но и численные значения. В этом
случае как при считывании, так и при записи происходит автоматическое преобразование
форматов числовых и символьных.
Для записи информации в файл используютя процедуры Write, WriteLn :
Write (Name_file,x1,x2..xn) – процедура выполняет запись в файл с именем
Name_file из переменных x1, x2..xn;
Если чтение производится с клавиатуры, то в процедурах Read, ReadLn опускает-
ся параметр Name_file и подразумевается стандартная файловая переменная INPUT, а при
выводе файла на экран подразумевается стандартная файловая переменная OUTPUT вместо
параметра Name_file в процедурах Write, WriteLn.
Закрытие текстового файла осуществляется процедурой Close, которая прерывает
связь файловой переменной с ее фактическим файлом :
Close(Name_file)
Вопросы по теме 3 :
1. Какими процедурами открываются текстовые файлы в Turbo Pascal 7.0 ?
2. Какими процедурами считываются текстовые файлы в Turbo Pascal 7.0 ?
3. Какими процедурами сохраняются текстовые файлы в Turbo Pascal 7.0 ?
- Возможна ли процедура считывания или записи в текстовом файле числовых
данных.
- Особенности считывания данных с клавиатуры и вывода на экран.
Задание по теме 3: Произвести чтение текстового файла dan.txt из корневого
каталога диска D и вывод его на :
a) экран ;
b) в файл wdan.txt корневого каталога диска D .
Тема 4. Обработка типизированных файлов.
Как отмечалось выше, типизированный файл описывается в разделе VAR , следую-
щим образом :
Name_file : of Name_type – типизированный файл с именем Name_file
и типом его элементов Name_type ;
При обработке типизированных файлов могут быть использованы следующие
процедуры :
Assing - для связи файловой переменной с файлом на диске;
Reset, Rewrite - для открытия файла для чтения и соответственно для записи.
Reset - можно использовать как для чтения, так и для записи;
Read, Write - для считывавния и соответственно для сохранения данных
из файла (в файл). Процедуры ReadLn, Writeln для типизиро-
ванных файлов – недопустимы ;
Close - для закрытия файла.
Типизированные файлы целесообразно использовать для хранения однородной
по типу информации. Несмотря на то, что числовые данные можно хранить и в тесто-
вых файлах, лучше для этой цели использовать типизированные файлы, так как они
используют меньше памяти.
Вопросы по теме 4 :
1. Как обьявить типизированный файл ?
2. Какими процедурами можно открыть и закрыть типизированный файл ?
- Какими процедурами можно обработать типизированный файл ?
- Почему использование типизированного файла предпочтительнее для хранения чисел
по сравнению с текстовым.
Задание по теме 4: 1. Произвести считывание файла с целыми числами cifra.dat из корневого
каталога диска D и вывод его на экран в формате (5 знаков).
2. Произвести вывод чисел от 1 до 1000 в файл cifra1.dat корневого
каталога диска D
Тема 5. Обработка нетипизированных файлов.
Как отмечалось выше, нетипизированный файл описывается в разделе VAR , следую-
щим образом :
Name_file : file – нетипизированный файл с именем Name_file
При обработке нетипизированных файлов могут быть использованы следующие
процедуры :
Assing - для связи файловой переменной с файлом на диске;
Reset, Rewrite - для открытия файла для чтения и соответственно для записи.
Процедуры Reset, Rewrite отличаются от соответствующих процедур для текстового
и типизированного файлов наличием дополнительного, хотя и необязательного параметра,
который определяет размер порции информации при записи или чтении. Этот параметр
имеет тип WORD. Если он отсутствует, то по умолчанию его величина = 128 байтам.
Reset (Name_file, N)
BlockRead (Name_file, buf , count) - для считывания и соответственно для сохранения
BlockWrite (Name_file, buf , count) - данных из файла (в файл) в переменную buf раз-
мером порции = count .
Close - для закрытия файла.
Для эффективного выполнения операций Ввода – Вывода целесообразно использование
нетипизированных файлов, так как с этим типом файлов возможен прямой доступ
к любому элементу файла независимо от типа его элементов.
Вопросы по теме 5:
- Какими процедурами открывается нетипизированный файл и в чем их отличие
от подобных процедур для других типов файлов ?
2. Какими процедурами можно считывать или сохранять нетипизированный файл
- Какой метод доступа к элементам файла возможен при использовании нетипизиро-
ванных файлов ?
Задание по теме 5: Выполнить считывание нетипизированного файла в новый файл.
Список использованной литературы
- Сергиевский М.В.,Шалашов А.В. ТУРБО ПАСКАЛЬ 7.0 Язык. Среда программирования.
Москва. Машиностроение. 1994 г.
2 . Немнюгин С.А. TURBO PASCAL. Практикум. ПИТЕР. Москва – Санкт-Петербург – и т.д.
2003 г.
П Р И Л О Ж Е Н И Е 1
Процедуры для обработки файлов в среде TURBO PASCAL 7.0
Процедуры | |
Описание | Примечание |
Append (Var F: text) | Открывает существующий файл, связанный с файловой переменной f, Для добавления в него новых записей |
Assing (Var F, string) | Cвязывает внешний файл, имя которого указано в строковой константе String, с файловой переменной F |
BlockRead (Var F : file; Var Buf ; Count :Word) | Считывает из нетипизированного файла, связанного с файловой переменной F, блок записей в переменную Buf, Count определяет количество записей в блоке |
BlockWrite (Var F : file; Var Buf ; Count :Word) | Записывает в нетипизированный файл, связанный с файловой переменной F, блок записей в переменную Buf, Count определяет количество записей в блоке |
ChDir (S : string) | Выполняет смену текущего каталога на каталог, маршрут к которому указан в строковой переменной S |
Close (Var F) | Закрывает открытый файл, связанный с файловой переменной F |
Erase (Var F) | Стирает внешний файл, связанный с файловой переменной F |
Fluch (Var F : text) | Сбрасывает буфер текстового файла, связанный с файловой переменной F и открытого для вывода процедурами ReWrite и Append. Это гаран-тирует сохранность записываемой информации во внешнем файле, не влияет на файлы, открытые для чтения |
GetDir (Var D : byte; Var S : string) | Возвращает в строке S текущий каталог на заданном диске D. Имя ката-лога находится в строковой переменной S. При этом 0 – текущий диск, 1 – диск А, 2 – диск B, 3 – диск C, и т.д. Если значение, заданное парамет- ром D – неверно, то возвращается значение “X : \ ” |
MrDir (Var S : string) | Cоздает подкаталог, имя которого задается строковой переменной S |
Read (Var F : text;V1..) | Считывает одно или несколько значений из файла, связанного с файло-вой переменной F, в одну или несколько переменных V1.. |
ReadLn (Var F : ext;V1..) | То же, что и Read, но выполняет пропуск до начала следующей строки текстового файла |
ReName ( Var F; S : string) | Переименовывает внешний файл, связанный с файловой переменной F, на имя, содержащееся в строковой переменной S |
ReSet ( Var F) | Открывает существующий файл, связанный с файловой переменной F, текущий указатель устанавливается в начало файла. Текстовый файл открывается этой процедурой только для чтения |
ReWrite (Var F) | Создает и открывает новый файл, связанный с файловой переменной F, при этом уже существующий файл стирается, а на его месте создается пустой файл, а текущий указатель подводится к началу файла |
RmDir (Var S : string) | Удаляет пустой каталог, маршрут которого указан в строковой переменной S |
SeeK ( Var F; N : Longint) | Перемещает текущий указатель в файле, связанном с файловой пере- менной F, на заданный элемент, при этом началу файла соответствует N = 0, для текстовых файлов не используется |
SetTextBuf (Var F : t ext; Var Buf) | Назначает для текстового файла, связанного с файловой переменной F, буфер ввода / вывода. Во избежания потери данных неприменим к отк-рытым файлам |
Truncate ( Var F ) | Усекает размер файла, связанного с файловой переменной F, до текущей позиции. Вся информация после текущего указателя теряется. Неприме-ним к текстовым файлам |
Write (Var F : text; V1.. ) | Записывает в файл, связанный с файловой переменной F, одно или несколько значений из переменных V1.., при этом файловая переменная необязательно связана с текстовым файлом. Этими значениями могут быть : integer, real, string, char, boolean – для текстового файла, а для типизированного файла - они должны совпадать с элементами файла |
WriteLn ( Var F : text; V1.. ) | То же, что и Write, но затем записывает в текстовый файл признак конца строки |
Функции для обработки файлов в среде TURBO PASCAL 7.0
Функции | |
Описание | Примечание |
Eof ( Var F ) : boolean | Возвращает для файла, связанного с файловой переменной F, состояние End – of – file (конец файла) : TRUE – если текущее положение указате-ля - в конце файла или файл – пустой ; FALSE – в остальных случаях |
FilePos ( Var : F ) : longint | Возвращает текущую позицию для файла, связанного с файловой пере-менной F. При положении текущего указателя в начале файла – возвра-щает 0. Для текстовых файлов не используется |
FileSize ( Var : F ) : longint | Возвращает текущий размер файла, связанного с файловой переменной F и открытого для вывода процедурами ReWrite и Append, что гаранти-рует сохранность информации, записываемой в файл, во внешнем файле. Не влияет на файлы, открытые для чтения |
IoResult : integer | Возвращает целое значение, являющееся состоянием последней выпол-ненной операцией ввода / вывода. Нулевое значение соответствует нор- мальному завершению операции |
SeekEof ( Var F : text ) : boolean | Возвращает для текстового файла, связанного с файловой переменной F, состояние “конец файла” |
SeekEoLn ( Var F : text ) : boolean | Возвращает для текстового файла, связанного с файловой переменной F, состояние “конец строки” |
По теме: методические разработки, презентации и конспекты
Конспект урока с презентацией "Графика на языке программирования Turbo Pascal"
Урок для учащихся 11 класса по теме "Графика на языке программирования ТР". Содержит теоретический материал, практическую работу и презентацию к уроку. Надеюсь, многим учителям информатики пригодится!...
Реализация циклического алгоритма в среде Turbo Pascal. Оператор цикла с параметром
Урок по предметной области “Информатика” для 9-10 класса Данный материал представляет разработку урокапо теме “Реализация циклического алгоритма в среде TurboPascal. Оператор цикла с парам...
Первые уроки программирования по теме «Целые числа» в основной школе (Среда Turbo Pascal)
Перед каждым учителем информатики стоит задача: «чему учить в информатике и как учить». В настоящее время появилось большое кол...
Построение модульной программы в среде Turbo Pascal 7.0
Использование модулей позволяет организовать коллективную разработку программ....
Тест по программированию в среде Turbo Pascal. 9 класс
Тестироваиние по теме "Тест по программированию в среде Turbo Pascal" 9 класс...
Turbo Pascal (ту́рбо паска́ль) — среда разработки для языка программирования Паскаль.
Турбо Паскаль - это язык высокого уровня (сокращенно ЯВУ) программирования общего назначения. Язык получил своё имя в честь великого французского математика и философаБлеза Паскаль, автора первых...
Практическая работа программирование в среде TURBO PASCAL. Управление экраном.
Практическая работа апрграммирование в среде TURBO PASCAL. Управление экраном. 9 класс.Работе состоит из двух частей - теоретической и практичекой. В теоретической части представлены некот...