Операторы работы с файловым типом данных

В программе на Паскале текстовый файл представлен файловой переменной типа Text. Каждая переменная файлового типа должна быть объявлена в разделе описания переменных.

Var

F1 : Text;

Связь файловой переменной с файлом на диске осуществляет оператор ASSIGN(файловая переменная, имя файла);

Открытие файла для чтения выполняет оператор RESET(файловая переменная), указатель файла при этом устанавливается на первую запись.

Открытие файла для записи выполняет оператор REWRITE (файловая переменная). Если файл с таким именем уже существовал, то он стирается.

Открытие файла для добавления записей в конец файла выполняет оператор APPEND (файловая переменная).

При окончании работы с файлом он должен быть закрыт оператором CLOSE(файловая переменная), обязательно должен использоваться после создания файла, иначе происходит потеря данных.

Для чтения очередной строки используется READLN(файловая переменная, переменные). Допускается лишь последовательное чтение из файла. При выполнении этого оператора указатель перемещается на следующую запись.

Запись строки в файл выполняет WRITELN (файловая переменная, переменные).

Данные из файла можно посимвольно читать оператором READ (файловая переменная, символьная переменная) и записывать WRITE(файловая переменная, символьная переменная).

Функции для работы с текстовыми файлами

EOF(файловая переменная)- функция определения признака конца файла, возвращает TRUE, если обнаружен конец файла.

EOLN (файловая переменная) - функция обнаружения конца строки в текстовом файле, возвращает TRUE, если обнаружен конец строки.

GetDir(B, S)- возвращает строке S текущий каталог на заданном диске D. Диск задается значением D (0 – текущий диск, 1 – диск А, 3 – диск С)

ChDir (S) – выполняет смену текущего каталога на каталог, маршрут к которому указан в строковой переменной S

MkDir (S) –создает подкаталог, имя которого задается строковой переменной S

Erase(файловая переменная) – стирает внешний файл, связанный с файловой переменной (файл должен быть закрыт)

Пример выполнения работы:

Условие задачи:   Содержимое текстового файла INFO.TXT вывести на экран и определить количество строк в файле Var F1 :Text; K : Integer; S : String; Begin Assign(F1, ‘C:\DAT\INFO.TXT’); Reset (F1); K:=0; While Not(Eof(F1)) Do Begin Readln(F1, S); K:=K+1; Writeln(S); End; Writeln (‘kol-vo=’, K); Close(F1); End. Условие задачи:   В файл NOMER.TXT записать десять чисел, введенных с клавиатуры.   Var F1 :Text; I, N : Integer; Begin Assign(F1, ‘C:\DAT\NOMER.TXT’); REWRITE (F1); FOR I:=1 To 10 Do Begin Readln( N); Writeln(F1, N); End; Close(F1); End.

Контрольные вопросы

· Что означает понятие Файл последовательного доступа?

· Какую последовательность действий нужно выполнить в программе для создания и заполнения текстового файла?

· Какую последовательность действий нужно выполнить в программе для чтения данных из текстового файла?

· Какие существуют способы открытия файла для записи и в чем их различие?

· Можно ли производить запись в файл, который открыт для чтения?

· В какое место файла добавляются новые записи?

· Как будет реагировать программа, если при открытии файла для чтения указан несуществующий файл?

Варианты к лабораторной работе №10

(ваш номер по журналу соответствует номеру варианта)

Задание 1 С помощью текстового редактора БЛОКНОТ создать файл INFO.txt Задание 2
Вывести на экран те строки файла, которые содержат слово YES.
Создать текстовый файл и записать в него 5 одинаковых строк. Записываемая строка вводится с клавиатуры.
Определить , сколько раз в файле встречается слово STUDENT.
Имеются два текстовых файла с одинаковым количеством строк. Выяснить, совпадают ли строки. Если нет, то вывести номер строки, в которой найдено не совпадение.
Определить, совпадают ли первое слово в первой строке файла с первым словом последней строки файла.
Ввести данные о 5-ти студентах: фамилию, его оценку за экзамен. Сформировать два файла, в один записать всех, кто не сдал экзамен, в другой – кто сдал.
Определить количество символов в самой длинной строке файла.
Исходный файл переписать в новый в обратной последовательности. (Последняя строка должна быть записана первой и т.д.).
Каждая строка файла содержит марку автомобиля и фамилию его владельца (например, FORD Иванов). Вывести фамилии тех, у кого BMW).
Переписать в новый файл из исходного файла последнее слово каждой строки.
Вывести вторую и предпоследнюю строки файла. Если в файле только одна строка, то выводить сообщение «нет решения».
Строки исходного файла записать в новый файл, добавив знак ? после первого слова строки.
В каждой строке файла записаны фамилия и должность сотрудника. Вывести на экран фамилии программистов.
Переписать строки исходного файла в новый файла , при этом каждую строку «перевернуть наоборот».
Вывести первую и последнюю строки файлы.
Переписать в новый файл из исходного файла первое слово каждой строки.
Ввести слово. Определить содержится ли оно в файле.
Создать текстовый файл и записать в него 10 одинаковых строк. Записываемая строка вводится с клавиатуры.
В файле содержится программе на Паскале, каждый оператор записан с новой строки. Определить правильно ли записан оператор цикла с постусловием.
Удалить из файла самую короткую строку (сформировать новый файл).
Вывести на экран те строки файла, которые не содержат слово NO.
Имеется текстовый файл. Переписать в другой файл все строки с заменой в них запятой на точку.
Каждая строка файла содержит фамилию студента и его оценку за экзамен. Вывести фамилии тех, кто сдал экзамен на 4 или 5.
Ввести число. Записать таблицу умножения на это число в файл
Каждая строка файла это фамилия и дата рождения сотрудника. (например Иванов 12.04.95). вывести фамилии тех, у кого день рождения летом.
Имеется текстовый файл. Все четные строки этого файла записать во второй файл, а нечетные строки в третий файл).
Вывести те строки исходного файла, длина которых не превышает 15 символов .
Переписать содержимое файла в новый файл без пустых строчек.
В файле записаны числовые значения, каждое с новой строки. Определить среднее арифметическое для значений, хранящихся в файле.
В файле содержать сведения о людях: фамилия, возраст, пол. Создать два текстовых файла, один из которых содержит фамилии всех мужчин, второй файл – всех женщин.
Вывести на экран те строки файла, которые находятся между первой и второй пустой строки.
Имеются два текстовых файла с одинаковым количеством строк. Переписать совпадающие строки в третий файл.
Вывести на экран только те строки исходного файла, которые состоят из одного слова.
Удалить из файла самую длинную строку (сформировать новый файл)
Вывести на экран те строки исходного файла, длина которых больше 10 символов .
Переписать содержимое файла в новый файл удваивая пустые строчки.
Для каждой сроки исходного файла определить номер строки и количество символов в ней.
Переписать строки исходного файла в новый файл, укоротив длинные строки до 20 символов.
Вывести на экран стоки файла, которые начинаются с заглавной буквы
В файле содержать сведения о людях: фамилия, возраст. Создать два текстовых файла, один из которых содержит фамилии всех кто старше 30 лет, второй файл – всех кто моложе 30 лет.
Вывести первый и последний символ каждой строки.
Каждую строку файла записать дважды в новый файл.
Вывести две последние строки файла.
Каждую строку исходного файла записать в новый файл, заключив ее в кавычки.
Определить количество строк в файле, которые начинаются и заканчиваются одним и тем же символом.
Все строки файла переписать в новый файл, оставив при этом в строчках по 5 символов.
Определить количество символов в самой короткой строке файла.
Из первых символов каждой строки исходного файла сформировать строчку и записать ее в новый файл.
Определить количество слов в файле.
Даны два текстовых файла. Поменять местами содержимое этих файлов.
Вывести на экран каждую вторую строчку файла.
Имеется текстовый файл. Переписать в другой файл все строки с заменой в них символа «0» на символ «1»
Вывести на экран те строки файла, которые содержат слово STUDENT.
Из последних символов каждой строки исходного файла сформировать строчку и записать ее в новый файл.
Определить содержится ли в строках файла запись отрицательного числа.
В файле содержится программе на Паскале, каждый оператор записан с новой строки. Определить правильно ли расставлены в ней операторные скобки.
    Определить количество пустых строк в файле.
В конец существующего файла записать 3 строки, которые вводятся с клавиатуры.
Каждая строка файла содержит фамилию студента и его оценку за экзамен. Вывести фамилии тех, кто не сдал экзамен.
В конец существующего файла записать новую строку с текстом «До свидания, мой друг » (по-английски).
Вывести на экран те строки файла, которые заканчиваются точкой.
Есть текстовый файл, дописать в него 6 одинаковых строк. Записываемая строка вводится с клавиатуры.
Определить количество предложений в файле (предложение заканчивается точкой).
Даны два текстовых файла. Записать в третий файл только те строки, которые есть в первом и во втором файлах.




СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

1. Голицына О.Л., Попов И.И., Основы алгоритмизации и программирования, Учебное пособие. – М.: ИНФРА-М, 2002.

2. Аляев Ю.А., Козлов О.А, Алгоритмизация и языки

программирования, Учебно-справочное пособие, М.: Финансы и статистика,2002.

3. Юркин А.Г., Задачник по программированию, СПб.:Питер,2002.

4. Немнюгин С.А., TurboPascal: практикум, СПб: Питер, 2001

5. Культин Н., TurboPascal в задачах и примерах, СПб: БХВ-Петербург,2002.

ПРИЛОЖЕНИЕ

Министерство образования Московской области

Дмитровский профессиональный колледж

Специальность 230105

Наши рекомендации