Лабораторная работа № 14
Лабораторная работа №14.
Разработка программ работы с текстовыми файлами
Цель работы
Изучение принципов работы с текстовыми файлами в языке Pascal и разработка программ для обработки текстовой информации.
Теоретические сведения
Текстовые файлы — это файлы, содержащие символьные данные, разделенные на строки.
Основные операции с текстовыми файлами:
· Описание файловой переменной: var f: text;
· Связывание с файлом: assign(f, 'имя_файла.txt');
· Открытие для записи: rewrite(f);
· Открытие для чтения: reset(f);
· Запись данных: write(f, данные);
· Чтение данных: read(f, данные);
· Закрытие файла: close(f);
Задания
Задание 1. Создание и чтение текстового файла
Написать программу для создания файла и записи в него строк, а затем чтения этих строк.
pascal
program FileCreateRead;
var
f: text;
filename, str: string;
n, i: integer;
begin
writeln('Введите имя файла: ');
readln(filename);
assign(f, filename);
rewrite(f);
writeln('Сколько строк записать? ');
readln(n);
for i := 1 to n do
begin
writeln('Введите строку ', i, ': ');
readln(str);
writeln(f, str);
end;
close(f);
reset(f);
writeln('Содержимое файла:');
while not eof(f) do
begin
readln(f, str);
writeln(str);
end;
close(f);
end.
Задание 2. Подсчет слов в файле
Написать программу для подсчета количества слов в текстовом файле.
pascal
program WordCount;
const
delimiters = [' ', '.', ',', ':', ';'];
var
f: text;
filename, str: string;
word_count, i: integer;
begin
writeln('Введите имя файла: ');
readln(filename);
assign(f, filename);
reset(f);
word_count := 0;
while not eof(f) do
begin
readln(f, str);
i := 1;
while i <= length(str) do
begin
if (str[i] in delimiters) then
begin
if i > 1 then
inc(word_count);
while (i <= length(str)) and (str[i] in delimiters) do
inc(i);
end
else
inc(i);
end;
end;
close(f);
writeln('Количество слов: ', word_count);
end.
Задание 3. Поиск слова в файле
Написать программу для поиска заданного слова в текстовом файле.
pascal
program SearchWord;
const
delimiters = [' ', '.', ',', ':', ';'];
var
f: text;
filename, pattern, word: string;
line_num: integer;
begin
writeln('Введите имя файла: ');
readln(filename);
writeln('Введите слово для поиска: ');
readln(pattern);
assign(f, filename);
reset(f);
line_num := 0;
while not eof(f) do
begin
inc(line_num);
readln(f, word);
if pos(pattern, word) > 0 then
writeln('Слово найдено в строке ', line_num);
end;
close(f);
end.
Порядок выполнения работы
1. Изучить теоретические сведения.
2. Разработать алгоритмы для каждого задания.
3. Написать программы с учетом требований к обработке файлов.
4. Протестировать программы на различных наборах данных.
5. Оформить отчет.
Требования к отчету
1. Титульный лист.
2. Цель работы.
3. Теоретические сведения.
4. Листинги программ с комментариями.
5. Результаты тестирования.
6. Ответы на контрольные вопросы.