Простые средства ввода и редактирования текста
Если для редактирования открывается новый набор данных или раздел библиотечного набора данных, то панель редактора выглядит, как показано на рис. 5.56 ("пустая" панель).
Ввод текста производится в строку, следующую за строкой Top of Data, начиная с 8-й колонки экрана, при этом 7-я колонка, отделяющая область данных от поля нумерации, обязательно должна оставаться пустой. Попытка ввода в 7-ю колонку приводит к блокировке клавиатуры, после чего требуется нажимать клавишу СБРОС. Переход на новую строку производится путем перемещения курсора либо клавишами-стрелками, либо нажатием клавиши ПЕРЕВОД СТРОКИ. При использовании стандартной клавиатуры персональных ЭВМ в качестве такой клавиши используется Enter. Посимвольное редактирование вводимого текста осуществляется стандартными клавишами вставки (Insert) и удаления (Delete).
Рис. 5.56. Начальное состояние панели редактирования
После того, как текст сформирован, следует нажать клавишу ВВОД. Это приведет к автоматическому формированию номеров строк введенного текста, однако не приведет к его сохранению.
Если в конце строк текста остается не заполненное символами пространство, редактор может автоматически заполнить его пробелами или оставить пустым, в зависимости от значения параметра NULLS текущего профиля редактирования. Если NULLS в состоянии ON, это значит, что "хвосты" строк не заполняются и, таким образом, разрешена вставка новых символов в незаполненное пространство. Если NULLS в состоянии OFF, то строки дополняются пробелами и вставка новых символов блокируется, пока не будет удалено некоторое количество дополнительных пробелов. Для изменения текущего значения параметра NULLS можно воспользоваться командой NULLS OFF или NULLS ON, которая вводится в командной строке.
Для сохранения текста без выхода из режима редактирования следует воспользоваться функциональной командой редактора SAVE, не имеющей дополнительных операндов. Команда SAVE записывает данные в тот же набор данных, из которого они были выбраны для редактирования.
Для последовательных наборов данных перезаписывается весь набор данных. Если набор данных библиотечный, то раздел переписывается с тем же именем раздела и статистическая информация библиотеки автоматически обновляется, если установлен режим STATS ON.
При установленных режимах нумерации (NUMBER ON) и автоматической пepeнyмepaции (AUTONUM ONM) данные автоматически перенyмepoвывaютcя перед сохранением.
Если при перезаписи данных происходит ошибка ввoдa-вывoдa или недостаточно памяти для записи данных, в верхнем правом углу панели отображается сообщение с выдачей звукового сигнала. Когда при сохранении получено сообщение о нехватке памяти в наборе данных, пользователь может установить режим разделения экрана (SPLIT, F2) и попытаться решить проблему путем сжатия библиотечного набора данных или удаления и перераспределения последовательного набора данных, а затем повторно сохранить данные по команде SAVE, вернувшись в панель редактирования. Можно также попытаться сохранить данные в другом наборе данных или в другом разделе библиотечного набора данных, пользуясь командами CREATE или REPLACE.
У пользователя есть возможность отменить ошибочно выполненные действия с помощью команды UNDO, не имеющей операндов. Каждый раз при вводе команды UNDO отменяется одна предыдущая операция. Операцией считаются все действия, произведенные пользователем между двумя последовательными нажатиями на клавишу ВВОД или какую-либо функциональную клавишу. Отмена операций может быть продолжена вплоть до последней выполненной команды сохранения данных или до начала сеанса редактирования.
Чтобы использовать команду UNDO, необходимо предварительно настроить параметры профиля редактирования RECOVERY и SETUNDO, которые позволяют определить, где будет производиться временное хранение выполненных изменений в данных, c целью их дальнейшего использования для восстановления.
В частности, команда RECOVERY ON устанавливает режим сохранения изменений в файле, что позволяет автоматически восстанавливать содержимое редактируемого текста даже при возникновении системных сбоев и ошибок, при потере связи и срыве пользовательского сеанса и других неприятностях.
Меню действий панели редактирования является еще одним средством выполнения различных команд и настроек, связанных с работой редактора, а также служит для доступа к стандартным функциям ISPF/PDF.
Пользователь может завершить сеанс редактирования либо с сохранением, либо без сохранения внесенных в текст изменений. В первом случае следует использовать системные команды END (F3) или RETURN (F4), которые автоматически вызывают команду сохранения SAVE и производят запись данных в набор данных печати ISPF/PDF (если установлены режимы автоматической записи AUTOSAVE ON и AUTOLIST ON).
Для завершения сеанса редактирования без сохранения измененных данных используется не имеющая операндов функциональная команда CANCEL или CAN. Эта команда позволяет аннулировать все выполненные изменения. При использовании команды CANCEL автоматическая запись данных в набор данных печати ISPF/PDF не производится даже в том случае, если установлен режим автоматической записи.
Теперь рассмотрим некоторые наиболее важные средства редактирования текста, основанные на применении строчных команд. В общем виде строчные команды состоят, как правило, из не более чем двухсимвольного имени и могут включать один целочисленный параметр. Обобщенный формат строчной команды выглядит так:
имя[число]
Как это принято, квадратные скобки говорят о необязательном присутствии параметра. Имя команды разрешается вводить как строчными, так и прописными буквами. Oднocимвoльныe строчные команды выполняют операции для отдельных строк, в которых они указаны. Например, строчная команда D используется для удаления строки, I - для вставки пустой строки, R - для дублирования (повторения) строки, M - для перемещения строки. Если вслед за строчной командой указано число, то оно задает количество строк, которые должны быть обработаны, начиная с указанной. Двyxcимвoльныe команды оперируют группами строк (строчными фрагментами). Например, двyxcимвoльнaя строчная команда DD указывается в первой и последней строке удаляемого строчного фрагмента.
Ввод строчной команды может производиться начиная с любой позиции поля нумерации, например:
D00005 или 00D005 или 00000D
Пользователь может указать одновременно несколько строчных команд в различных строках. Для перемещения курсора к полю строчных команд следующей строки можно использовать клавишу ПЕРЕВОД СТРОКИ (Enter). Активизация действия всех строчных команд происходит по нажатию клавиши ВВОД.
В связи с тем что строчные команды вводятся поверх номеров строк, в некоторых случаях введенная команда может трактоваться неоднозначно. Так, в следующем примере:
0316000 . . . . . . . . . . . . . . . . R317000 . . . . . . . . . . . . . . . . 0318000 . . . . . . . . . . . . . . . .
неясно, ввел ли пользователь команду R для повторения строки с номером 317000 или, например, команду R3 для повторения данной строки три раза. B таких случаях по умолчанию предполагается, что введена команда без параметра, указывающего количество строк, то есть R.
Если же пользователю в данной ситуации необходимо повторить строку три раза (R3), он должен выполнить одно из следующих действий (на выбор):
- переместить курсор в позицию, непосредственно следующую за командой R3:
R31700 - указать один или более пробелов, следующих за командой R3:
R3 700
При вводе нескольких строчных команд их обработка производится последовательно от начала и до конца текста. B этом случае могут быть обнаружены синтаксические ошибки, а также противоречия между некоторыми командами, что приводит к появлению соответствующих сообщений. Сначала отображается только сообщение о первой обнаруженной ошибке. После того как пользователь исправит ошибку, обработка может быть продолжена.
Самый простой способ исправления ошибок реализуется вводом команды RESET, которая очищает поле ввода строчных команд, и повторным вводом требуемых команд. Пользователь может вводить некоторые строчные команды в строках, содержащих сообщения Top of Data ("начало данных") и Bottom of Data) ("окончание данных"), замещая звездочки, содержащиеся в первых шести позициях в начале строки.
Для строки " начало данных" такими строчными командами являются: I (вставка строк), A (начальная позиция копирования или перемещения строк) и TE (ввод текста). В строке "окончание данных" может быть использована только команда B (конечная позиция копирования или перемещения строк).
Для создания простых текстовых данных, например заданий JCL, исходных программ на каком-либо языке программирования достаточно использовать лишь небольшую часть возможностей редактора EDIT. В первую очередь речь пойдет о средствах, базирующихся в основном на применении следующих строчных команд [25]:
- I - вставить пустую строку;
- D - удалить строку;
- R - дублировать строку;
- C - копировать строку;
- M - переместить строку;
- A, B - указатели целевой строки для копирования (перемещения) (A - после указанной строки, B - до указанной строки).
Кроме того, здесь будут представлены средства копирования и перемещения данных между редактируемым текстом и другими наборами данных или разделами, основанные на применении команд редактора CREATE, REPLACE, MOVE и COPY.
Для последовательных наборов данных перезаписывается весь набор данных. Если набор данных библиотечный, то раздел переписывается с тем же именем раздела и статистическая информация библиотеки автоматически обновляется, если установлен режим STATS ON.
При установленных режимах нумерации (NUMBER ON) и автоматической пepeнyмepaции (AUTONUM ONM) данные автоматически перенyмepoвывaютcя перед сохранением.
Если при перезаписи данных происходит ошибка ввoдa-вывoдa или недостаточно памяти для записи данных, в верхнем правом углу панели отображается сообщение с выдачей звукового сигнала. Когда при сохранении получено сообщение о нехватке памяти в наборе данных, пользователь может установить режим разделения экрана (SPLIT, F2) и попытаться решить проблему путем сжатия библиотечного набора данных или удаления и перераспределения последовательного набора данных, а затем повторно сохранить данные по команде SAVE, вернувшись в панель редактирования. Можно также попытаться сохранить данные в другом наборе данных или в другом разделе библиотечного набора данных, пользуясь командами CREATE или REPLACE.
У пользователя есть возможность отменить ошибочно выполненные действия с помощью команды UNDO, не имеющей операндов. Каждый раз при вводе команды UNDO отменяется одна предыдущая операция. Операцией считаются все действия, произведенные пользователем между двумя последовательными нажатиями на клавишу ВВОД или какую-либо функциональную клавишу. Отмена операций может быть продолжена вплоть до последней выполненной команды сохранения данных или до начала сеанса редактирования.
Чтобы использовать команду UNDO, необходимо предварительно настроить параметры профиля редактирования RECOVERY и SETUNDO, которые позволяют определить, где будет производиться временное хранение выполненных изменений в данных, c целью их дальнейшего использования для восстановления.
В частности, команда RECOVERY ON устанавливает режим сохранения изменений в файле, что позволяет автоматически восстанавливать содержимое редактируемого текста даже при возникновении системных сбоев и ошибок, при потере связи и срыве пользовательского сеанса и других неприятностях.
Меню действий панели редактирования является еще одним средством выполнения различных команд и настроек, связанных с работой редактора, а также служит для доступа к стандартным функциям ISPF/PDF.
Пользователь может завершить сеанс редактирования либо с сохранением, либо без сохранения внесенных в текст изменений. В первом случае следует использовать системные команды END (F3) или RETURN (F4), которые автоматически вызывают команду сохранения SAVE и производят запись данных в набор данных печати ISPF/PDF (если установлены режимы автоматической записи AUTOSAVE ON и AUTOLIST ON).
Для завершения сеанса редактирования без сохранения измененных данных используется не имеющая операндов функциональная команда CANCEL или CAN. Эта команда позволяет аннулировать все выполненные изменения. При использовании команды CANCEL автоматическая запись данных в набор данных печати ISPF/PDF не производится даже в том случае, если установлен режим автоматической записи.
Теперь рассмотрим некоторые наиболее важные средства редактирования текста, основанные на применении строчных команд. В общем виде строчные команды состоят, как правило, из не более чем двухсимвольного имени и могут включать один целочисленный параметр. Обобщенный формат строчной команды выглядит так:
имя[число]
Как это принято, квадратные скобки говорят о необязательном присутствии параметра. Имя команды разрешается вводить как строчными, так и прописными буквами. Oднocимвoльныe строчные команды выполняют операции для отдельных строк, в которых они указаны. Например, строчная команда D используется для удаления строки, I - для вставки пустой строки, R - для дублирования (повторения) строки, M - для перемещения строки. Если вслед за строчной командой указано число, то оно задает количество строк, которые должны быть обработаны, начиная с указанной. Двyxcимвoльныe команды оперируют группами строк (строчными фрагментами). Например, двyxcимвoльнaя строчная команда DD указывается в первой и последней строке удаляемого строчного фрагмента.
Ввод строчной команды может производиться начиная с любой позиции поля нумерации, например:
D00005 или 00D005 или 00000D
Пользователь может указать одновременно несколько строчных команд в различных строках. Для перемещения курсора к полю строчных команд следующей строки можно использовать клавишу ПЕРЕВОД СТРОКИ (Enter). Активизация действия всех строчных команд происходит по нажатию клавиши ВВОД.
В связи с тем что строчные команды вводятся поверх номеров строк, в некоторых случаях введенная команда может трактоваться неоднозначно. Так, в следующем примере:
0316000 . . . . . . . . . . . . . . . . R317000 . . . . . . . . . . . . . . . . 0318000 . . . . . . . . . . . . . . . .
неясно, ввел ли пользователь команду R для повторения строки с номером 317000 или, например, команду R3 для повторения данной строки три раза. B таких случаях по умолчанию предполагается, что введена команда без параметра, указывающего количество строк, то есть R.
Если же пользователю в данной ситуации необходимо повторить строку три раза (R3), он должен выполнить одно из следующих действий (на выбор):
- переместить курсор в позицию, непосредственно следующую за командой R3:
R31700 - указать один или более пробелов, следующих за командой R3:
R3 700
При вводе нескольких строчных команд их обработка производится последовательно от начала и до конца текста. B этом случае могут быть обнаружены синтаксические ошибки, а также противоречия между некоторыми командами, что приводит к появлению соответствующих сообщений. Сначала отображается только сообщение о первой обнаруженной ошибке. После того как пользователь исправит ошибку, обработка может быть продолжена.
Самый простой способ исправления ошибок реализуется вводом команды RESET, которая очищает поле ввода строчных команд, и повторным вводом требуемых команд. Пользователь может вводить некоторые строчные команды в строках, содержащих сообщения Top of Data ("начало данных") и Bottom of Data) ("окончание данных"), замещая звездочки, содержащиеся в первых шести позициях в начале строки.
Для строки " начало данных" такими строчными командами являются: I (вставка строк), A (начальная позиция копирования или перемещения строк) и TE (ввод текста). В строке "окончание данных" может быть использована только команда B (конечная позиция копирования или перемещения строк).
Для создания простых текстовых данных, например заданий JCL, исходных программ на каком-либо языке программирования достаточно использовать лишь небольшую часть возможностей редактора EDIT. В первую очередь речь пойдет о средствах, базирующихся в основном на применении следующих строчных команд [25]:
- I - вставить пустую строку;
- D - удалить строку;
- R - дублировать строку;
- C - копировать строку;
- M - переместить строку;
- A, B - указатели целевой строки для копирования (перемещения) (A - после указанной строки, B - до указанной строки).
Кроме того, здесь будут представлены средства копирования и перемещения данных между редактируемым текстом и другими наборами данных или разделами, основанные на применении команд редактора CREATE, REPLACE, MOVE и COPY.