Как написать игру для ZX Spectrum на ассемблере

       

ФУНКЦИЯ ПОИСКА/ЗАМЕНЫ



ФУНКЦИЯ ПОИСКА/ЗАМЕНЫ

Пока вы имеете дело с небольшими обрывками программ, что-то подправить в них не представляет особого труда. Но попробуйте-ка перетряхнуть огромный текст, состоящий из многих сотен инструкций и найти в нем нужное место. Вряд ли это занятие доставит вам большое удовольствие, а когда вы наконец отыщите заветную строчку, охота заниматься с программой может и вовсе улетучиться. Чтобы уберечь своих пользователей от нервного истощения, вызванного такой работой, фирма HiSoft включила в редактор GENS команду, предназначенную для поиска нужной последовательности символов, да еще и с возможностью замены ее на другую. Эта команда записывается так:

F[номер начальной строки],[номер конечной строки], [текст для поиска][,текст для замены]

Как и раньше, квадратные скобки указывают на необязательность параметров. Если какой-то из них не задан, то он берется из последней введенной команды. Вообще же лучше на всякий случай перечислять все элементы команды, особенно при замене текста.

Предположим, вам нужно в тексте программы найти все места, где встречается метка LABEL. Введите в редакторе команду

F1,20000,LABEL

Как только функция найдет последовательность символов, совпадающую с заданной (LABEL), на экране появится строка текста, содержащая эту последовательность, и GENS перейдет в режим редактирования. При этом курсор для удобства автоматически устанавливается в самое начало найденного текста. После этого у вас есть два варианта дальнейших действий: либо закончить поиск, нажав клавишу Enter, либо продолжить его, для чего нет надобности набирать команду заново, а достаточно нажать клавишу F. Естественно, вам ничто не мешает сразу же внести в текст какие-то изменения, но если они должны быть везде однотипными, проще задать в команде F также и последний параметр. Например, чтобы заменить все имена LABEL на METKA введите в редакторе строку

F1,20000,LABEL,METKA

Внешне поведение функции при этом не изменится: при нахождении первого имени строка точно так же будет вызываться на редактирование, а курсор указывать на первый символ слова LABEL. Вы так же можете продолжать вносить изменения вручную и по желанию продолжать поиск без изменений текста или прервать выполнение команды. Но теперь у вас появилась и иная возможность. Если нажать клавишу S, то слово LABEL мгновенно заменится словом METKA, а на экране появится следующая найденная строка.



Содержание раздела