Файлы - Pascal ABC (12709)
Формулировка задачи:
В текстовом файле находится текст, разбитый на строки . каждая строка состоит из слов,разбитых пробелами.Посчитать количество строк и слов в файле и записать результат в новый файл.
Решение задачи: «Файлы»
textual
Листинг программы
//напишем процедуру подготовки строки к подсчету слов
procedure stroka(var s:string);
begin
s:=trim(s);//уберем пробелы в начале и в конце
while pos(' ',s)>0 do //пока в строке есть 2 пробела рядом(в апострофах 2 пробела, не 1!)
delete(s,pos(' ',s),1); //один удаляем
s:=' '+s;//добавим 1 пробел в начало для фиксации первого слова в строке
end;
var f:text;
s:string;
kst,ksl,i:integer;
begin
assign(f,'text.txt');//файл в папке с программой
reset(f);
kst:=0;//количество строк
ksl:=0;//количество слов
while not eof(f)do
begin
readln(f,s);
stroka(s);
inc(kst);
for i:=1 to length(s) do
if s[i]=' ' then inc(ksl);
end;
close(f);
write('Количество строк=',kst,' количество слов=',ksl);
end.
Объяснение кода листинга программы
- Создается процедура
stroka, которая подготавливает строку к подсчету слов. В этой процедуре строка очищается от лишних пробелов в начале и в конце. Затем происходит поиск и удаление пар пробелов. В конце добавляется один пробел в начало строки для фиксации первого слова. - Создается переменная
fтипаtextи присваивается значениеtext.txt. Это будет имя файла, из которого будет читаться строка за раз. - Создается переменная
sтипаstring. Она будет использоваться для хранения текущей строки из файла. - Создаются две переменные
kstиkslтипаinteger. Они будут использоваться для отслеживания количества строк и слов соответственно. - Запускается цикл while, который будет выполняться до конца файла.
- Внутри цикла считывается строка из файла в переменную
s. - Вызывается процедура
strokaдля подготовки строкиsк подсчету слов. - Увеличивается значение переменной
kstна единицу, так как мы прочитали еще одну строку. - Для каждой цифры в строке
sпроверяется, является ли она пробелом. Если это так, то увеличивается значение переменнойkslна единицу. - По завершении чтения строки из файла, закрывается файл.
- Выводится сообщение с количеством строк и слов.
- Конец программы.