Лучше писать результат не в тот же файл, а в другой: при составлении регулярных выражений без достаточного опыта можно легко ошибиться.
uses System.Text.RegularExpressions;
const CRLF = #13#10;
var s, sbig: string; fin, fout: Text;
begin Assign(fin, 'MyIn.txt'); Reset(fin); sbig := ''; while not Eof(fin) do begin Readln(fin, s); sbig := sbig + s + CRLF end; Close(fin); {пример - уладить подстроки, начиная с "http:" и до первого пробела, причем внутри подстроки может встретиться переход на новую строчку. Используется шаблон '\bhttp:\S+' - подробности: регулярные выражения} sbig:=RegEx.Replace(sbig, '\bhttp:\S+', '', RegexOptions.Multiline); Assign(fout, 'MyOut.txt'); Rewrite(fout); Write(fout, sbig); Close(fout); Writeln('Конец работы'); end.
Сложно понять, что нужно было сделать автору программы, но в любом случае сделано криво. Ввод и вывод организованы так, что выводимые значения сливаются с вводимыми, образуя непонятные комбинации.
Программа запрашивает некоторое значение "В", на превышение которого потом она реагирует один раз. Затем запрашивается количество чисел, которые надо ввести. Эти числа вводятся в цикле (почему это цикл while - непонятно, обычно подобные вещи делают в цикле for) и тут же выводится, т.е. программа повторяет введенное число. В случае, когда введенное число первый раз превышает "В", перед этим числом выводится значение "В". Именно для этого использована логическая переменная bol: после возникшего превышения она принимает значение false и отключает дальнейшую проверку на превышение.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку