Убрать лишние пробелы в тексте и подсчитать количество строк в файле - 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.

Объяснение кода листинга программы

  1. Установка начального значения переменной k равным 0.
  2. Открытие файла file.txt для чтения и файла file_1.txt для записи.
  3. В цикле, пока не достигнут конец файла, происходит чтение строки из файла file.txt и ее запись в файл file_1.txt.
  4. При каждой итерации цикла происходит удаление лишних пробелов из строки с помощью процедуры probel.
  5. Каждая строка, прошедшая через процедуру probel, записывается в файл file_1.txt.
  6. После завершения чтения всех строк из файла file.txt, файл file_1.txt переименовывается в file.txt, а количество строк выводится на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4 из 5
Похожие ответы