Убрать лишние пробелы в тексте и подсчитать количество строк в файле - Free Pascal

Узнай цену своей работы

Формулировка задачи:

Ребят, помогите с задачей, пожалуйста!!!! показывает ошибку 2 задача убирает лишние пробелы в тексте и подсчитывает кол-во строк в файле.
Листинг программы
  1. uses crt;
  2. var f:text;
  3. s:string;
  4.  
  5. Procedure probel( var s:string );
  6. begin
  7. while pos(' ',s)>0 do
  8. delete (s,pos(' ',s),1);
  9. while s[1]=' ' do delete(s,1,1);
  10. end;
  11.  
  12. Function kol(s:string):integer;
  13. var k:integer;
  14. begin
  15. assign(f,'file.txt');
  16. rewrite(f);
  17. k:=0;
  18. While not Eof(f) do
  19. begin
  20. Read(f,s);
  21. k:=k+1;
  22. end;
  23. close(f);
  24. writeln(' ');
  25. Writeln('Line count=',k);
  26. ReadLn;
  27. kol:=k;
  28. end;
  29.  
  30. BEGIN
  31. clrscr;
  32. assign(f,'file.txt');
  33. writeln('new text: ');
  34. reset(f);
  35. while not eof(f) do
  36. begin
  37. readln(f,s);
  38. probel(s); write(s);
  39. end;
  40. close(f);
  41. kol(s);
  42. readln;
  43. end.

Решение задачи: «Убрать лишние пробелы в тексте и подсчитать количество строк в файле»

textual
Листинг программы
  1. uses crt;
  2. Procedure probel( var s:string ); //удаление пробелов
  3.  begin
  4.     while s[1]=' ' do delete(s,1,1);//в начале
  5.     while s[length(s)]=' ' do delete(s,length(s),1); //в конце
  6.     while pos('  ',s)<>0 do delete(s,pos(' ',s),1); // в середин, если 2 рядом
  7.  end;
  8. var f,g:text;
  9.     s:string;
  10.     k:integer;
  11. begin
  12. clrscr;
  13. k:=0; //количество строк
  14. assign(f,'file.txt'); //связываемся с файлом
  15. reset(f); /открываем для чтения
  16. assign(g,'file_1.txt');
  17. rewrite(g); //второй для записи
  18. while not eof(f) do
  19.  begin
  20.   readln(f,s);//читаем первый
  21.   probel(s); //удаляем лишние прбелы
  22.   inc(k);//считаем строки
  23.   writeln(g,s); //пишем измененную строку в файл 2
  24.  end;
  25. close(f);//закрываем их
  26. close(g);
  27. erase(f); //уничтожаем первый
  28. rename(g,'file.txt');//переименовываем второй в первый
  29. writeln('Количество строк=',k);
  30. readln;
  31. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы