Подход № 1
Пока вы просматриваете файл, сохраняйте переменную для предыдущей строки (всегда обновляйте ее до текущей строки перед выполнением цикла). Теперь вы знаете текущую и предыдущую строки и можете решить, нужно ли редактировать текущую строку.
Подход № 2
Пока вы просматриваете файл, установите флаг, соответствующий некоторому условию, например, Я только что нашел Sports
. Если позже вы найдете условие, которое должно сбросить флаг, например, Я только что нашел Radio
, не установил его. Если вы найдете Clips
, вы можете проверить, установлен ли SportsFlag
, чтобы увидеть, нужно ли вам редактировать эту строку Clips
.
Второй подход является более гибким (позволяет устанавливать и сбрасывать несколько флагов в зависимости от текущей строки) и хорош, если между Sports
и Clips
может быть несколько строк. Это по сути бедный человек State Machine