Лабораторная работа № 13. Цель работы: освоение приемов объявления файлов и овладение навыками обработки текстовых файлов

Тема: ФАЙЛЫ (текстовые файлы)

Цель работы: освоение приемов объявления файлов и овладение навыками обработки текстовых файлов.

Образцы решения задач.

Задача № 1. Дан символьный файл f. Напишите программу подсчета количества букв 'т' в заданном файле. Выведите на экран соответствующие сообщения, если таких букв нет, если их количество превышает некоторое заданное число или не превышает.

Постановка задачи.

Каждый символ текстового файла сравниваем с буквой 'т', в случаи совпадения, счетчик увеличиваем. Значение счетчика сравниваем с заданным числом и выдаем соответствующее сообщение.

Текстовый файл создается в каком-либо текстовом редакторе.

Входные данные.

Текстовый файл – f.

Заданное число – ch (тип - целый).

Выходные данные.

Сообщение в соответствии с условием задачи.

Алгоритм.

1. Ввести число.

2. Подсчитать количество букв 'т' в файле.

3. Сравнить количество букв 'т' с заданным числом и выдать соответствующее сообщение.

Текст программы

Модуль.

unit obr_stroki;

Interface

procedure rezul(stkoll, chh: word);

function koll(var st: text):word;

Implementation

procedure rezul(stkoll, chh: word);

Begin

if stkoll=0 then

WriteLn(’в файле нет букв “т”’)

Else

if stkoll>chh then

WriteLn(’букв “т” в файле больше, чем заданное число’)

Else

if stkoll=chh then

WriteLn(’равное количество’)

Else

WriteLn(’букв “т” в файле меньше, чем заданное число’)

end;

function koll(var st: text):word;

Var

k, chl, i: word;

txtt: string;

Begin

{$I-}

ReSet(st);

{$I+}

if IOResult <> 0 then

writeln(’ошибка открытия файла’)

Else begin

k:=0;

while not SEEKEOF(st) do begin

ReadLn(st, txtt);

chl:=length(txtt);

for i:=1 to chl do

if txtt[i]= ’т’ then

k:=k+1;

end;

koll:=k;

Close(st);

end;

end;

End.

Основная программа.

uses obr_stroki;

Var

f: text;

stkol, ch: word;

Begin

Assign(st, ’F:\fttt.txt’);

WriteLn(’введите число’);

ReadLn(ch);

stkol:=koll(f);

rezul(stkol, ch)

end.

Задача № 2. Дан символьный файл f. Преобразовать его следующим образом: если нет символа '*', то оставить его без изменений, иначе заменить каждый символ '*', встречающийся после первого его вхождения, на символ '-'. Результат записать в файл g.

Постановка задачи.

В задаче необходимо использовать типовой алгоритм поиск по ключу, а также стандартные функции обработки строки: удаления и вставки.

Исходный текстовый файл (f) создается в каком-либо текстовом редакторе.

Входные данные.

Текстовый файл – f.

Выходные данные.

Текстовый файл – g.

Алгоритм.

1. Поиск первого символа ’*’ в исходном файле (f), алгоритм поиска по ключу.

2. Замена каждого символа ’*’, после первого его вхождения, на символ ’-’.

2.1. считать строку из исходного файла;

2.2. каждый символ считанной строки проверить, если символа ’*’, удалить и на его место вставить символ ’-’, перейти к следующему элементу строки;

2.3. преобразованную строку записать в новый файл (g).

Текст программы.

Var

f, g: text;

fl: boolean;

num: word;

procedure poisk(var flag: boolean; var numm: word);

Var

txtt: string; i, j: word;

Begin

j:=1;

flag:=true;

while (not SEEKEOF(f)) and flag do begin

ReadLn(f, txtt);

i:=1;

while flag and (i<=length(txtt)) do

if txtt[i]= ’*’ then begin

flag:=false;

numm:=j;

End


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: