Типизированный файл, тип Char, нахождение нужной строки - Pascal
Формулировка задачи:
В типизированный файл записаны символы(File of Char), программа должна искать строчку lalala, в конце программа должна вывести количесво строчек,где есть lalala, при том, если строчка такая: lalalala, то у нас две строчки lalala. Будьте добры, подскажите, как это сделать.
Решение задачи: «Типизированный файл, тип Char, нахождение нужной строки»
textual
Листинг программы
- const
- fName = 'la.txt';
- var
- f : File of Char;
- ch : Char;
- trigerLA : Boolean;
- countLA : Integer;
- resultLA : Integer;
- procedure lalala(var count : Integer);
- begin
- if count - 2 > 0 then
- resultLA := resultLA + (count - 2);
- count := 0;
- end;
- begin
- resultLA := 0;
- Assign(f, fName);
- Reset(f);
- trigerLA := False;
- countLA := 0;
- while Not EOF(f) do
- begin
- Read(f, ch);
- { собственно считаем тут }
- if ch = 'l' then
- trigerLA := True
- else if (ch = 'a') and trigerLA then
- begin
- trigerLA := False;
- Inc(CountLA);
- end
- else
- begin
- trigerLA := False;
- lalala(CountLA);
- end;
- end;
- if CountLA > 0 then
- lalala(CountLa);
- Close(f);
- WriteLn(resultLA);
- end.
Объяснение кода листинга программы
- Переменная
fName
содержит имя файла, который нужно открыть. - Переменная
f
является объектом типаFile of Char
, который представляет собой файловый объект, связанный с файломfName
. - Переменная
ch
является символом типаChar
, который представляет собой отдельный символ из файла. - Переменная
trigerLA
является булевым значением, которое указывает, был ли найден символ 'l' в файле. - Переменная
countLA
является целым числом, которое отслеживает количество символов 'l' в файле. - Переменная
resultLA
является целым числом, которое содержит итоговый результат обработки файла. - Функция
lalala
принимает целое числоcount
в качестве параметра и увеличивает значениеresultLA
наcount - 2
. - В начале цикла
while Not EOF(f)
выполняется следующее:- Чтение символа из файла
f
в переменнуюch
. - Проверка, равен ли символ 'l'. Если да, то устанавливается значение
trigerLA
вTrue
. - Если символ не равен 'l', но
trigerLA
равноTrue
, то устанавливается значениеtrigerLA
вFalse
и увеличивается значениеCountLA
на 1. - Если символ не равен 'l' и
trigerLA
равноFalse
, то вызывается функцияlalala
с аргументомCountLA
.
- Чтение символа из файла
- После окончания цикла
while Not EOF(f)
выполняется следующее:- Закрытие файлового объекта
f
. - Вывод значения
resultLA
в консоль.
- Закрытие файлового объекта
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д