ГЕНЕРАЦИЯ ДАННЫХ И ТЕКСТА ПРОГРАММ
KEYIN
KEYIN < строка'символов >
Оператор KEYIN помещает <символьную
строку> в текст программы. Если строка имеет номер и не противоречит
соглашениям синтаксиса Beta Basic, она займет соответствующее место в
программе. В противном случае компьютер выдаст сообщение Nonsense in
Basic. Выполним строку программы:
10 KEYIN "20 PRINT ""Hello'.....
Она выведет на экран: Hello
- а текст примера станет выглядеть так:
10 KEYIN "20 PRINT ""Hello""" 20 PRINT "Hello"
Таким образом, описываемый оператор позволяет программе модифицировать саму себя по ходу выполнения!
При работе оператора KEYIN могут встретиться некоторые неожиданности. Отметим лишь, что KEYIN гораздо надежнее работает,
когда генерируемые им строки располагаются в тексте программы после него.
Сфера применения оператора KEYIN весьма широка.
В первую очередь необходимо сказать о возможности с его помощью
генерировать данные для DATA-списков. Такая потребность может
возникнуть, если необходимо передать данные из одной программы,
работающей в среде Beta Basic, в другую, которая для ускорения расчетов
должна быть скомпилирована. Как известно, компиляторы Spectrum-Бейсика
не позволяют работать «в лоб» с внешней памятью
(магнитофоном или дисководом). При помощи же оператора KEYIN данные,
сформированные первой программой и сохраненные в виде массива на ленте,
можно преобразовать в списки операторов DATA. Полученные DATA-списки
объединяются со второй программой и совместно с ней компилируются.