Убрать лишние пробелы в тексте и подсчитать количество строк в файле - Free Pascal
Формулировка задачи:
Ребят, помогите с задачей, пожалуйста!!!! показывает ошибку 2
задача убирает лишние пробелы в тексте и подсчитывает кол-во строк в файле.
uses crt;
var f:text;
s:string;
Procedure probel( var s:string );
begin
while pos(' ',s)>0 do
delete (s,pos(' ',s),1);
while s[1]=' ' do delete(s,1,1);
end;
Function kol(s:string):integer;
var k:integer;
begin
assign(f,'file.txt');
rewrite(f);
k:=0;
While not Eof(f) do
begin
Read(f,s);
k:=k+1;
end;
close(f);
writeln(' ');
Writeln('Line count=',k);
ReadLn;
kol:=k;
end;
BEGIN
clrscr;
assign(f,'file.txt');
writeln('new text: ');
reset(f);
while not eof(f) do
begin
readln(f,s);
probel(s); write(s);
end;
close(f);
kol(s);
readln;
end.Решение задачи: «Убрать лишние пробелы в тексте и подсчитать количество строк в файле»
textual
Листинг программы
uses crt;
Procedure probel( var s:string ); //удаление пробелов
begin
while s[1]=' ' do delete(s,1,1);//в начале
while s[length(s)]=' ' do delete(s,length(s),1); //в конце
while pos(' ',s)<>0 do delete(s,pos(' ',s),1); // в середин, если 2 рядом
end;
var f,g:text;
s:string;
k:integer;
begin
clrscr;
k:=0; //количество строк
assign(f,'file.txt'); //связываемся с файлом
reset(f); /открываем для чтения
assign(g,'file_1.txt');
rewrite(g); //второй для записи
while not eof(f) do
begin
readln(f,s);//читаем первый
probel(s); //удаляем лишние прбелы
inc(k);//считаем строки
writeln(g,s); //пишем измененную строку в файл 2
end;
close(f);//закрываем их
close(g);
erase(f); //уничтожаем первый
rename(g,'file.txt');//переименовываем второй в первый
writeln('Количество строк=',k);
readln;
end.
Объяснение кода листинга программы
- Установка начального значения переменной k равным 0.
- Открытие файла
file.txtдля чтения и файлаfile_1.txtдля записи. - В цикле, пока не достигнут конец файла, происходит чтение строки из файла
file.txtи ее запись в файлfile_1.txt. - При каждой итерации цикла происходит удаление лишних пробелов из строки с помощью процедуры probel.
- Каждая строка, прошедшая через процедуру probel, записывается в файл
file_1.txt. - После завершения чтения всех строк из файла
file.txt, файлfile_1.txtпереименовывается вfile.txt, а количество строк выводится на экран.