Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по языку ЛИСП.doc
Скачиваний:
105
Добавлен:
28.06.2014
Размер:
210.94 Кб
Скачать

Insert - переключение режимов редактирования

"замена-вставка"

Del - удаление символа под курсором

- команды работы с блоком

Ctrl + K + B (F7) - отметить начало блока

Ctrl + K + K (F8) - отметить конец блока

Ctrl + K + H - отменить разметку блока

Ctrl + K + V - переместить блок

Ctrl + K + Y - удалить блок

Ctrl + K + C - скопировать блок

Ctrl + K + R - прочитать блок из файла

Ctrl + K + W - записать блок в файл

- 13 -

- команды поиска и замены

Ctrl + Q + F - поиск подстроки в тексте

Ctrl + Q + A - замена подстроки в тексте

Finde:(искать) - ввод искомой подстроки

Replace with: - ввод подстроки замены

(заменить на)

Options:(режим) - ввод комбинации символов управления по-

иском или заменой (см. ниже)

B - поиск назад

G - глобальный поиск

L - поиск до первого обнаружения

N - искать до N-го обнаружения (N - число)

U - игнорировать различие прописных/строчных символов

- Ctrl + Q + G - переключение режимов "текст-графика"

- Ctrl + Home + End - завершить работу SK.

6. Организация ввода-вывода

Версия системы muLISP-90, в отличие от предыдущих версий,ис-

пользует традиционную схему организации обмена информацией, основ-

ным понятием которой является последовательный файл. Структура

файла и его обозначение соответствуют стандартам принятым в опера-

ционной системе MS-DOS. Например имя файла STUDENT.LSP, хранящего-

ся на дисководе A: в разделе LSPLIB, будет обозначаться как

A:\\LSPLIB\\STUDENT.LSP. Еще раз обращаем ваше внимание на необхо-

димость удвоения разделителя пути "\" в имени файла! В качестве

имени файла допускается так же использование имен стандартных уст-

ройств ввода-вывода: CON, PRN, LPT1(2,3), COM1(2), AUX, NUL и т.п.

Перед началом работы файл должен быть открыт как входной или

выходной файл с помощью функций OPEN-INPUT-FILE(OPEN-OUTPUT-FILE).

После чего возможен доступ к соответствующему файлу для для ввода

или вывода информации. Одновременно может быть открыто столько

файлов, сколько позволяет конкретная версия операционной системы.

Для всех функций ввода-вывода предусмотрен параметр указания файла

с которым осуществляется обмен информацией. После окончания работы

- 14 -

с файлом он должен быть закрыт с помощью функций CLOSE-INPUT-FILE

(CLOSE-OUTPUT-FILE).

Общая структура команд ввода имеет вид:

(READ* INPUT EOF-P EOF).

Здесь READ* - название одной из функций ввода, INPUT - имя

источника ввода информации, которым может быть либо имя открытого

файла, либо - консоль (в том случае когда значение параметра INPUT

равно Т). EOF-P - указатель способа реакции на ситуацию "конец

файла". Если значение EOF-P равно Т, то в случае обнаружения конца

файла в качестве результата функции ввода

выдается значение третьего параметра EOF. В противном случае - при

достижении конца файла будет прервана работа программы с выводом

сообщения End-Of-File.

Аналогично, общая структура функций вывода имеет вид:

(WRITE* OBJECT OUTPUT).

WRITE* - название одной из функций вывода. Значение параметра

OBJECT задает объект вывода (атом, символ, строку, списочное выра-

жение и т.п.), а значение параметра OUTPUT - имя файла для вывода

или консоль (OUTPUT = T).

Более подробно специфика работы функций ввода-вывода описана

в разделах 8.10-8.11.

В качестве примера, иллюстрирующего методику работы с функци-

ями ввода-вывода, рассмотрим программу слияния строк двух тексто-

вых файлов:

$ (DEFUN MERGE (F1 F2 F3 S) ; F1,F2-входные файлы,

; F3-выходной файл, S-локальная переменная

(OPEN-INPUT-FILE F1) ; открыть входной файл F1

(OPEN-INPUT-FILE F2) ; открыть входной файл F2

(OPEN-OUTPUT-FILE F3) ; открыть выходной файл F3

(LOOP ; цикл чтения строк первого файла

(SETQ S (READ-LINE F1 T 'EOF1)) ; читать строку 1-го файла

((EQUAL S 'EOF1) ) ; проверка конца F1

(WRITE-LINE S F3) ; запись строки в F3

)

(CLOSE-INPUT-FILE F1) ; завершение работы с F1

(LOOP ; цикл чтения строк второго файла

- 15 -

(SETQ S (READ-LINE F2 T 'EOF2)) ; читать строку 2-го файла

((EQUAL S 'EOF2) ) ; проверка конца F2

(WRITE-LINE S F3) ; запись строки в F3

)

(CLOSE-INPUT-FILE F2); завершить работу с F2

(CLOSE-OUTPUT-FILE F3); завершить работу с F3

)

MERGE ; результат выполнения функции DEFUN

$REM Вызов программы слияния

$ (MERGE 'A:\\DOC1.TXT 'B:\\DOC2.TXT 'C:\\DOC3.TXT)

Для повышения гибкости работы функций ввода-вывода в системе

muLISP предусмотрен набор глобальных управляющих переменных. Так

переменная *INPUT-FILE* (*OUTPUT-FILE*) содержит имя последнего

открытого входного (выходного) файла, а переменная *INPUT-ECHO*

(*PRINTER-ECHO*) в зависимости от своего значения (T или NIL) поз-

воляет дублировать вводимую (печатаемую) информацию выводя ее на

консоль. К сожалению ввиду ограниченности данного пособия нет воз-

можности привести их список полностью.