sample050.PAS

{* Удаление из текста комметариев типа {...} *}

Unit SAMPLE050;
Interface
Implementation
Begin
 writeln('Удаление из текста комметариев типа {...}');
End.

Program pas;

Uses sample050.pas; {* Эту строку можно удалить *}
( * Обработка текста : удаление из текста комметариев типа {...}
* )  { -------------------------------------------------------------------------- }
{ На входе - текст с комметариями, на выходе - текст без комментарив       }
{ -------------------------------------------------------------------------- }
Var {* В работе нам потребуются переменные: *}
  s     : String;
  r     : String;
  state : integer;
  i     : integer;
Begin
  writeln('Введите любой текст с комментариями');
  readln(s);
  r := '';
  state := 0; {нормальное состояние}
  For i := 1 To length(s) Do {* Переменная i увеличивается с 1 до length(s) *}
  Begin
    Case s[i] Of             '{':
      If state = 0 Then
        state := 1; {теперь мы внутри комментария}

    '}
    '
:
    If state = 1 Then
      state := 0   {теперь мы вышли из комментария}
    Else r := r + s[i]; {мы не в комментарии}
    Else If state = 0 Then
      r := r + s[i]; {мы не в комментарии}
  End;
  
End;
  writeln('новый текст:');
  writeln(r);
  End......