Я пересекаю текстовый файл построчно, корректируя текст так, чтобы файл в конечном итоге соответствовал синтаксису, необходимому для запуска на симуляторе MIPS (MARS). Моя проблема в том, что всякий раз, когда я вижу строку со строкой «blezl», я хочу сделать несколько вещей. Сначала мне нужно вставить несколько строк текста после строки, содержащей это слово. Это достаточно просто, используя вставку. Затем мне нужно вставить несколько строк текста после строки, которая первоначально следовала за найденной строкой. Проблема в том, что мне нужно найти во всем документе строку, которая была в конце найденной строки, а затем вставить несколько строк перед строками, которые содержат 2-ю найденную строку. Так ..
#1 blezl v0,#10
#2 addu s1,s0,s5
#3 lw v1,0(s8)
...
#10 addu s1,s0,s5
мне нужно найти "blezl", а затем я вставляю несколько строк между "# 1" и "# 2". Затем я вставляю несколько строк между «# 2» и «# 3», а затем мне нужно искать во всем документе «# 10», и, когда я их нахожу, я вставляю несколько строк перед ним. Проблема в том, что последний шаг требует, чтобы я искал весь документ (посередине обхода построчно, пока не был найден blezl). Это потому, что «# 10» может произойти где-нибудь до или после «# 1». Это займет вечность (в моем файле 80 тыс. Строк, и, вероятно, около 2% из них содержат «blezl»). Как я могу это сделать без большого избыточного шага?