ЭЛЕКТРОННАЯ БИБЛИОТЕКА КОАПП
Сборники Художественной, Технической, Справочной, Английской, Нормативной, Исторической, и др. литературы.



 

Часть 13

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є             RESUME              є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Возобновление работы приостановленной программы
    Синтаксис
    RESUME
    Смотри также
    CANCEL, CLEAR, RETURN, SUSPEND
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Команда RESUME вызывает продолжение работы приостановленной  прог-
раммы. Приостановленная программа начнет свою работу со строки, на ко-
торой выполнение программы было приостановлено.  Выполнение  программы
может быть приостановлено при помощи команды SUSPEND.
    Используйте команды RESUME и SUSPEND для отладки.  Текущее состоя-
ние среды FoxPro (переменные памяти,  окна, линейки меню и всплывающие
меню) может быть исследовано после приостановки работы любой  програм-
мы.
    Полезно очистить (использовать команду CLEAR) экран  или  окно  до
приостановки программы для того,  чтобы любые команды, введенные после
приостановки программы, не мешали последующему вводу и выводу данных в
экран или окно.



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є              RETRY              є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Повторное выполнение предыдущей команды
    Синтаксис
    RETRY
    Смотри также
    ON ERROR, RETURN, SET REPROCESS
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Команда RETRY возвращает управление вызывающей программе и повтор-
но выполняет строку, которая была выполнена последней в той программе.
Команда  RETRY подобна команде RETURN за тем исключением,  что команда
RETURN передает управление следующей строке в вызывающей программе,  а
не вызывает повторное выполнение самой последней выполненной строки.
    Команда RETRY особенно полезна в том случае,  когда некоторое мно-
жество команд должно быть повторено до наступления определенного собы-
тия или в процедурах обработки ошибок.
    В FoxPro/LAN,  сетевой версии FoxPro, команда RETRY обычно исполь-
зуется для повтора команды,  пока запись или файл не  станут  доступны
для использования.  Команда SET REPROCESS может использоваться для уп-
равления возвратом на команду,  которая не имела доступа к записи  или
файлу.  В  большинстве  сетевых ситуаций предпочтительней использовать
команду SET REPROCESS.

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         Пример программы        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    В этом  примере  распечатываются  записи  из базы данных CUSTOMER.
Если произошла ошибка,  выполняется PROCEDURE,  названная  STOP.  STOP
высвечивает  сообщение WAIT для проверки принтера,  и когда происходит
нажатие клавиши,  происходит возврат в программу к команде, на которой
произошла ошибка.

CLOSE ALL
SET ESCAPE ON
SET TALK OFF
USE customer
CLEAR
ON ERROR DO stop
SET DEVICE TO PRINTER
SCAN
   @ PROW()+1,10 SAY 'Company: ' + company
ENDSCAN
SET DEVICE TO SCREEN
ON ERROR

PROCEDURE stop
IF ERROR() = 125
    WAIT WINDOW 'Please check your printer'
    SET DEVICE TO PRINTER
    RETRY
ENDIF
RETURN



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є             RETURN              є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Возвращение управления вызывающей программе
    Синтаксис
    RETURN [ | TO MASTER | TO ]
    Замечания
    Изменена в FoxPro 2.0: Если в UDF опускается команда RETURN, функ-
ция автоматически возвращает логическое значение "истина".
    Смотри также
    DO, FUNCTION, PARAMETERS, PARAMETERS(), PRIVATE, PROCEDURE,
    PUBLIC, Функции определенные пользователем (UDF)
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Команда RETURN  заканчивает выполнение некоторой программы или оп-
ределенной пользователем функции (UDF) и  возвращает  управление  либо
вызывающей   программе,  либо  указанной  программе,  либо  командному
(Command) окну .
    Использование команды  RETURN в конце любой программы или функции,
определенной пользователем, является необязательным условием, т.к. не-
явная команда RETURN автоматически выполняется за последним оператором
любого программного файла.

    Дополнительные опции
    
    Если на программу ссылаются как  на  функцию,  которая  определена
пользователем,  то команда RETURN может быть включена в текст и за ней
должно следовать  (выражение). Где  представляет собой не-
которое  значение,  которое возвращается вызывающей программе.  Если в
UDF опускается команда RETURN,  функция автоматически возвращает логи-
ческое значение "истина".  Если на программу ссылаются как на функцию,
которая определена пользователем, и при этом она используется в коман-
де DO , то выражение  игнорируется.

    TO MASTER
    Если необязательное  предложение MASTER задано в этой команде,  то
управление передается на самый верхний уровень вызывающей программы.

    TO 
    Если необязательное предложение TO   задано  в  этой
команде,  то управление возвращается программе, имя которой специфици-
ровано в этой команде с помощью параметра .
    Все PRIVATE  переменные памяти освобождаются при выполнении команды
RETURN.

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         Пример программы        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    В этом примере функция с именем longdate будет возвращать строку
символов (с датой), которая пригодна для печати.
SET CENTURY ON
? longdate({08/19/89})
Saturday, August 19, 1989

FUNCTION longdate
PARAMETER mdate
RETURN CDOW(mdate) + ', ' + MDY(mdate)



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є              RIGHT              є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Возвращает правую часть символьного выражения
    Синтаксис
    RIGHT(, )
    Параметры
     - Выражение, в котором осуществляется поиск
     - Число возвращаемых символов
    Возвращаемое значение
    Символьное
    Смотри также
    AT(), LEFT(), LTRIM(), RAT(), RTRIM(), SUBSTR(), TRIM()
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Функция RIGHT()  возвращает  правую  часть  символьного выражения.
Символы возвращаются начиная с указанного символа и следуют вправо  на
заданное число символов.

    Параметры
    
    Символы возвращаются  функцией  RIGHT()  из символьного выражения,
указанного в .

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

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є             Пример              є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
? RIGHT('Perrysburg, OH',2)
OH


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є              RLOCK              є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Пытается заблокировать запись или группу записей базы данных
    Синтаксис
    RLOCK([ | ] | [,  | ])
    Параметры
       Номер рабочей области для базы данных
      Псевдоним базы данных
      Список  одного  или  нескольких номеров записей,  разделенных
             запятыми
    Возвращаемое значение
    Логическое
    Замечания
    FoxPro/LAN
    Смотри также
    CLEAR, CLOSE, FLOCK(), LOCK(), SET MULTILOCKS, SET REPROCESS,
    UNLOCK, USE
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    С помощью функции RLOCK() вы можете попытаться  заблокировать  за-
пись  или  группу  записей  базы  данных.  FoxPro/LAN,  сетевая версия
FoxPro, требует блокировки записей базы данных или файлов.
    Если блокировка или блокировки сделаны успешно,  возвращается зна-
чение "истинно" (.T.). Заблокированные записи доступны на чтение и за-
пись только пользователю,  который произвел эту блокировку,  остальным
пользователям сети эти  записи  доступны  только  по  чтению.  Функция
RLOCK()  всегда  возвращает  истинное значение для однопользовательской
версии FoxPro.
    Использование функции  RLOCK() не гарантирует,  что попытка блоки-
ровки записи завершится удачно.  Нельзя заблокировать запись, уже заб-
локированную другим пользователем, или заблокировать запись в уже заб-
локированном другим пользователем файле базы данных.  Если  блокировка
или  блокировки не могут быть успешно произведены,  возвращается логи-
ческое значение "ложно" (.F.).
    Вы можете  выдавать  функцию RLOCK() в Командном окне и в програм-
мах. Функция RLOCK() идентична функции LOCK().
    Команда SET REPROCESS определяет, как функция LOCK() будет возвра-
щать значение.  С помощью SET REPROCESS вы можете  продолжать  попытки
заблокировать запись,  если начальная блокировка не была успешной. Бо-
лее подробную информацию о том,  как SET REPROCESS влияет  на  попытки
блокировки,  можно найти в описании команды SET REPROCESS в этом руко-
водстве.
    Команда SET   MULTILOCKS   определяет   возможность  заблокировать
несколько записей базы данных. Если установлено SET MULTILOCKS OFF (по
умолчанию),  то  можно  заблокировать  только одну запись базы данных.
Группу  записей  можно  заблокировать,  когда  установлен  режим   SET
MULTILOCKS ON. Смотрите описание команды SET MULTILOCKS в данном руко-
водстве.

    Параметры
 | 
    Если вы не задали рабочую область или псевдоним,  функция  RLOCK()
будет  пытаться заблокировать текущую запись в файле базы данных в те-
кущей рабочей области.
    Для попытки  блокировки  текущей записи в базе данных,  открытой в
заданной рабочей области,  задайте номер рабочей  области    или
псевдоним базы данных .


    Для попытки блокировки  нескольких  записей  используйте  параметр
.  Вы должны также включить номер рабочей области или псевдоним
базы данных,  в которой вы пытаетесь заблокировать несколько  записей,
кроме того, нужно включить режим MULTILOCKS ON.
     является списком одного или  нескольких  номеров  записей.
RLOCK()  пытается  заблокировать  все  эти  записи.  Номера  записей в
 должны разделяться запятыми.  Например, для попытки заблокиро-
вать  первые  четыре  записи  в базе данных,   должно содержать
'1,2,3,4'.
    Вы можете  также заблокировать несколько записей установкой указа-
теля записей на желаемую запись,  использованием функции  RLOCK()  или
LOCK(), и повторением этой процедуры для каждой записи.
    Если успешно  заблокированы  все  записи,  заданные   в   ,
возвращается логическое значение "истинно" (.T.).
    Даже если одна из записей,  заданных в , не может быть заб-
локирована,  возвращается логическое значение "ложно" (.F.), и ни одна
из записей, заданных в  не будет заблокирована. Однако, сущест-
вующие  блокировки  записей  будут  оставаться  на  месте.  Блокировка
нескольких записей является аддитивным процессом - установка  дополни-
тельных блокировок не удаляет блокировки других записей.
    Максимальное число  записей,  которые  могут   быть   одновременно
заблокированы в каждой рабочей области,  приблизительно равно 8000.

    Разблокирование записей
    Запись базы данных может быть разблокирована только пользователем,
установившим блокировку. Блокировки записей могут быть удалены исполь-
зованием команды UNLOCK,  закрытием базы данных или выходом из системы
FoxPro/LAN с помощью команды QUIT.
    Команда UNLOCK может использоваться для снятия блокировок  записей
в  текущей рабочей области (UNLOCK),  заданной рабочей области (UNLOCK
IN  | ) или во всех рабочих областях (UNLOCK ALL).  Более
подробную информацию о команде UNLOCK можно найти в ее описании в дан-
ном руководстве.
    Переключение режима MULTILOCKS из режима ON в режим OFF или наобо-
рот всегда влечет выполнение команды UNLOCK ALL - освобождаются блоки-
ровки записей во всех рабочих областях.
    Базы данных могут быть закрыты с помощью команд USE, CLEAR ALL или
CLOSE DATABASE.
    Назначение

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         Пример программы        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
SET MULTILOCKS ON
SET REPROCESS TO AUTOMATIC
STORE '1,2,3,4' TO mreclist

USE customer IN A
USE states   IN B

? LOCK('1,2,3,4', 'A')   && Заблокировать первые 4 записи в customer
? RLOCK('1,2,3,4', 2)    && Заблокировать первые 4 записи в states
UNLOCK IN customer
UNLOCK IN states

? LOCK(mreclist, 1)       && Заблокировать первые 4 записи в customer
? RLOCK(mreclist, 'B')    && Заблокировать первые 4 записи в states
UNLOCK IN customer
UNLOCK IN states



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є              ROUND              є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Округляет числовое выражение с указанной точностью после запятой.
    Синтаксис
    ROUND(, )
    Параметры
     - Округляемое числовое выражение
     - Число десятичных знаков после округления
    Возвращаемое значение
    Числовое
    Смотри также
    INT(), SET DECIMALS
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Функция ROUND () возвращает округленное числовое выражение с  ука-
занной точностью после запятой.
    Значение, возвращаемое функцией имеет такое же  количество  знаков
после запятой, что и округляемое значение. Число знаков после запятой,
указанное в команде SET DECIMALS, игнорируется.

    Параметры
    
     Округляемое числовое выражение

    
     Число десятичных знаков после округления
    Если  является отрицательным числом,  возвращенное значение
округляется  до  целого числа содержащего  нулей.  Для примера:
если  равно -2, результат округляется до сотен.

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є             Примеры             є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
? ROUND(1234.1962, 3)
1234.1960
? ROUND(1234.1962, 2)
1234.2000
? ROUND(1234.1962, 0)
1234.0000
? ROUND(1234.1962, -1)
1200.0000
? ROUND(1234.1962, -2)
1000.0000
? ROUND(1234.1962, -3)



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є               ROW               є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Возвращает строку, в которой в текущий момент находится курсор
    Синтаксис
    ROW()
    Возвращаемое значение
    Числовое
    Смотри также
    COL(), PCOL(), PROW(), SCOLS(), SROWS()
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Функция ROW () возвращает строку, в которой в текущий момент нахо-
дится курсор.
    Эта функция  полезна  для относительной экранной адресации в прог-
рамме.
    Специальный оператор $ может использоваться вместо функции ROW().

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є             Пример              є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
@ 5,5 SAY ' '
@ ROW() + 6, COL() SAY 'Contact person'
@ $ + 6, COL() SAY 'Contact person'



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є              RTOD               є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Переводит радианы в градусы.
    Синтаксис
    RTOD()
    Возвращаемое значение
    Числовое
    Смотри также
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Функция RTOD () возвращает градусную меру угла, вычисленную из его
радианного значения . RTOD () полезна при работе с тригонометри-
ческими функциями FoxPro ( COS(),  SIN(),  TAN()...).  Функция  DTOR()
используется для обратного преобразования градусной меры в радианы.

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

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є             Примеры             є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
? RTOD(ACOS(0))

STORE -1 to arcangle

? RTOD(ACOS(arcangle))

? RTOD(ACOS(sqrt(2)/2))



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є              RTRIM              є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Возвращает символьную строку, которая является заданным символьным
выражением с удаленными хвостовыми пробелами.
    Синтаксис
    RTRIM()
    Возвращаемое значение
    Символьное
    Смотри также
    ALLTRIM(), LTRIM(), TRIM()
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Функция RTRIM  () возвращает символьную строку  с удаленными
из нее конечными пробелами.  Если  состоит целиком из  пробелов,
функция  RTRIM  ()  вернет  пустую строку.  Функция RTRIM () похожа на
функцию TRIM ().

    Параметры
    
    Включает символьное выражение,  из  которого  удаляются  хвостовые
пробелы.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         Пример программы        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
SELECT 0
USE customer
GOTO 3
? 'The contact for '+ RTRIM(company) + ' is ' + contact



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є             RUN | !             є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Выполнение внешней программы
    Синтаксис
    RUN [/N [K]]  | 
    ! [/N [K]]  | 
    Смотри также
    GETENV()
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Команда RUN  позволяет  вам  запускать  внешние  команды  DOS  или
DOS-программы  и  затем возвращаться в FoxPro.  Команда RUN может быть
выдана в командном (Command) окне или внутри программ.

ВНИМАНИЕ:
    1. Для  того,  чтобы  использовать  команду  RUN  под  управлением
MS-DOS,  файл операционной системы COMMAND.COM должен быть  в  текущем
каталоге или указан с помощью параметра DOS COMSPEC.
    2. Не запускайте с помощью команды RUN программы,  которые реорга-
низуют диски (например,  CHKDSK) из FoxPro.  Они могут так модифициро-
вать содержимое ваших дисков,  что результат их работы вызовет сбой  в
работе FoxPro.

    В состав  FoxPro  входит  средство  управления  памятью  FoxSwap.,
Средство FoxSwap обеспечивает больше доступной оперативной памяти  для
команды RUN.
    Использование в команде RUN режима /N или  /NK  дает  пользователю
возможность  задавать  объем  свободной  памяти  для  внешних программ
FoxPro.  Числовое значение N определяет объем освобождаемой  памяти  в
килобайтах. Буква N при указании освобождаемого объема памяти в коман-
ду не включается.
    При N=0 для команды RUN выделяется максимально возможный объем па-
мяти.
    При задании ненулевого значения FoxPro выполняет следующее:
    - записывает содержимое всех буферов на диск.
    - если  N  килобайт свободной памяти имеется,  выполняется команда
RUN,  в противном случае вызывается FoxSwap и команде RUN предоставля-
ется N килобайтов оперативной памяти.
    Например, для освобождения 120 килобайт памяти необходимых для за-
пуска  текстового  редактора  MYEDITOR  необходимо подать одну из ниже
приведенных команд:

RUN /120 MYEDITOR
! /120K MYEDITOR

    Хотя можно запускать большие внешние программы при помощи FoxSwap,
необходимо помнить, что FoxSwap более медленно работает по сравнению с
командой RUN которая не привлекает FoxSwap.

ВАЖНО:
    Определяете необходимый объем памяти для запуска внешней  програм-
мы,  при выполнении команды RUN . Не указывайте объем
памяти больше,  чем в действительности необходимо.  Если памяти доста-
точно,  то  утилита FoxSwap выполняться не будет и команда RUN в таком
случае работает быстрее.

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         Пример программы        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
STORE '10/31/91' TO today

? DATE()

! DATE &today  && Change the system date with the RUN | ! command

? DATE()



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є           SAVE MACROS           є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Сохранение макросов клавиатуры в файле или в поле примечаний
    Синтаксис
    SAVE MACROS TO | TO MEMO 
    Смотри также
    CLEAR, PLAY MACRO, RESTORE MACROS
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Макросы клавиатуры представляют собой наборы нажатых клавиш, кото-
рые сохраняются в памяти.  Когда вы покидаете (QUIT) FoxPro,  все соз-
данные вами макросы клавиатуры теряются,  если только вы не  сохранили
их в некотором файле макросов клавиатуры.  Вы можете сохранить макросы
клавиатуры в некотором файле макросов с помощью команды SAVE MACROS  и
потом  восстановить  их  из  этого  файла  макросов  с помощью команды
RESTORE MACROS.
    Заметим, что  макросы  клавиатуры  не связываются с функцией макро
(macro function) &.
    За более  подробной информацией о макросах клавиатуры отсылаем Вас
к  документу  "FoxPro  Interface  Guide"  (Руководство  по  интерфейсу
FoxPro).

    Дополнительные опции
    
    Задайте имя создаваемого вами файла макросов ,  в котором вы
хотите сохранить макросы клавиатуры. Длина имен файлов макросов клави-
атуры не должна превышать 8 символов.  Они должны начинаться с некото-
рой буквы или с символа подчеркивания и могут содержать любую комбина-
цию букв,  цифр и символа подчеркивания. Если вы не используете расши-
рение имени файла,  то,  по умолчанию,  для файлов макросов клавиатуры
принимается расширение .FKY. Если вы в имени файла макросов клавиатуры
использовали расширение имени файла,  отличное от .FKY, то вы его обя-
зательно  должны  включить  в  имя файла,  используемое вами в команде
RESTORE MACROS FROM.

    MEMO 
    Сохраняет клавиатурные макросы в указанном поле примечания.


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є           SAVE SCREEN           є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Сохранение образа экрана или окна в памяти
    Синтаксис
    SAVE SCREEN [TO ]
    Смотри также
    RESTORE FROM, RESTORE SCREEN, SAVE TO
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Команда SAVE  SCREEN позволяет вам сохранить образ текущего экрана
или окна вывода данных в экранном буфере (screen buffer), в переменной
памяти  (memory  variable),  или  в элементе некоторого массива (array
element),  таким образом,  что этот образ может  быть  затем  повторно
отображен.  Способность  сохранять и восстанавливать образы экрана или
окна уменьшает необходимость повторной визуализации  экрана  или  окна
шаг за шагом в каждый момент времени, когда экран или окно должны быть
отображены заново.
    Образ экрана или окна,  предварительно сохраненный в некотором бу-
фере с помощью команды SAVE SCREEN,  может быть визуально восстановлен
с помощью команды RESTORE SCREEN.  Образ, предварительно сохраненный в
переменной памяти  или  в  элементе  некоторого  массива,  может  быть
восстановлен с помощью команды RESTORE SCREEN FROM.
    Переменная памяти или элемент массива,  которые содержат образ эк-
рана или окна как свое значение,  при выдаче на экран с помощью команд
DISPLAY MEMORY или LIST MEMORY сопровождаются  признаком  типа  данных
"S".  Экраны, сохраненные в памяти, занимают приблизительно 4К памяти;
эта память выделяется из пула переменных памяти.
    Экраны или  окна,  сохраненные  в переменной памяти или в элементе
массива, могут сохраняться и восстанавливаться также, как и другие пе-
ременные памяти.

    Дополнительные опции
    TO 
    Сохраняет образ  экрана  или окна в переменной памяти или элементе
массива. Если не указать опции TO,  то образ экрана или окна  сохраня-
ется в буфере.


ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є             SAVE TO             є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Сохранение переменных памяти в файле или поле примечаний
    Синтаксис
    SAVE TO  | TO MEMO 
     [ALL LIKE | EXCEPT ]
    Смотри также
    PRIVATE, PUBLIC, RESTORE FROM, RELEASE
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Команда SAVE TO (сохранить в) записывает текущие переменные памяти
и массивы  переменных памяти в определенный файл переменных памяти или
поле примечаний.
    Используйте команду  RESTORE FROM для загрузки сохраненных в файле
или поле примечаний переменных памяти и массивов переменных памяти об-
ратно в память.

    Дополнительные опции
    TO 
    Сохранение переменных памяти в указанном файле.  По умолчанию, для
файлов переменных памяти принято расширение .MEM имени файла.

    TO MEMO 
    Сохранение переменных памяти в указанном поле примечаний.

    ALL LIKE 
    Если задано необязательное предложение ALL LIKE ,  то сохра-
няются только те переменные памяти и массивы переменных памяти,  кото-
рые соответствуют указанному шаблону . Вы можете включать в шаб-
лон  символы свободной карты ?  и *. Знак вопроса (?) специфици-
рует отдельный символ,  а знак звездочки (*) специфицирует  отсутствие
или появление любого числа символов.

    ALL EXCEPT 
    Если задано необязательное предложение ALL EXCEPT ,  то сох-
раняются все переменные памяти и массивы переменных памяти,  за исклю-
чением тех, которые соответствуют указанному шаблону . Вы можете
включать в шаблон  символы свободной карты ?  и *.  Знак вопроса
(?) специфицирует отдельный символ, а знак звездочки (*) специфицирует
отсутствие или появление любого числа символов.

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є             Пример              є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
val1 = 50
val2 = 'Hello'
SAVE TO temp
CLEAR MEMORY
val3 = DATE()
RESTORE FROM temp ADDITIVE
DISPLAY MEMORY LIKE val?



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є           SAVE WINDOW           є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Сохранение определения окна в файле или поле примечаний
    Синтаксис
    SAVE WINDOW  | ALL
     TO  | TO MEMO 
    Смотри также
    DEFINE WINDOW, RESTORE WINDOW, SAVE SCREEN, RESTORE SCREEN
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Команда SAVE WINDOW сохраняет текущие определение окна в некотором
файле  или поле примечаний.  Позже эти окна могут быть восстановлены с
помощью команды RESTORE WINDOW.  Статус окна также сохраняется в  этом
файле.  Например,  если  некоторое  окно имело статус hidden (скрыто),
когда оно сохранялось в файле с помощью команды SAVE  WINDOW,  то  оно
будет иметь тот же статус и после восстановления из файла.

    Дополнительные опции
    
    Имена одного или более сохраняемых окон.

    ALL
    Сохраняются все текущие определенные окна.

    TO 
    Сохранение определений окон в указанном файле.
    Для оконных файлов по умолчанию принято расширение .WIN для  имени
файла  в  том случае,  если вы не специфицировали какое-то расширение,
когда именовали этот файл.  Если в команде сохранения окон вы специфи-
цировали некоторое расширение для имени файла, отличное от .WIN, тогда
вы должны использовать это расширение в команде RESTORE WINDOW для из-
влечения окон из этого файла.

    TO MEMO 
    Сохранение определений окон в указанном поле примечаний.

ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є         Пример программы        є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
CLEAR
DEFINE WINDOW output FROM 2,1 TO 13,75 TITLE 'Output' ;
        CLOSE FLOAT GROW SHADOW ZOOM
ACTIVATE WINDOW output
@ 1,1 SAY 'This is the contents of the window'
SAVE WINDOW output TO temp
CLEAR WINDOWS
WAIT 'The window has been saved - Press a key' WINDOW
RESTORE WINDOW output FROM temp
ACTIVATE WINDOW output
WAIT 'The window has been restored - Press a key' WINDOW
DEACTIVATE WINDOW output
RELEASE WINDOW output

    В этом  примере окно с именем output определяется и затем сохраня-
ется в файле с именем TEMP.  Очищаются все  окна,  затем  окно  output
восстанавливается и активизируется.



ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є              SCAN               є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
    Назначение
    Перемещение по базе данных и условное выполнение команд
    Синтаксис
    SCAN [NOOPTIMIZE]
     [] [FOR ] [WHILE ]
        []
     [LOOP]
     [EXIT]
    ENDSCAN
    Смотри также
    DO CASE, DO WHILE, FOR ... ENDFOR
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
    Описание
    Команда SCAN  используется для перемещение по базе данных и услов-
ного выполнения  (операторов) для каждой  встреченной  за-
писи,  которая отвечает специфицированным условиям. Подобно команде DO
WHILE команда SCAN автоматически продвигает указатель записей  (record
pointer) на следующую запись и затем проверяет выполнение специфициро-
ванных условий.
    Комментарии могут помещаться в одной строке с ENDSCAN,  они  будут
игнорироваться во время компиляции и выполнения программы.

    Дополнительные опции
    
    По умолчанию диапазоном  при работе  команды  SCAN  являются
все  записи базы.  Вы должны использовать параметр  для задания
некоторого диапазона записей, которые будут сканироваться.

    FOR 
    Если использовано FOR ,  то операторы  выполня-
ются для всех записей внутри диапазона   записей,  для  которых
выражение  истинно.
    Rushmore будет оптимизировать запрос SCAN FOR,  если  явля-
ется оптимизируемым выражением. Для лучшего исполнения команды исполь-
зуйте оптимизированные выражения в опции FOR.  Вопросы оптимизации по-
ясняются  в главе Оптимизация Ваших Приложений в Руководстве разработ-
чика (Developer's Guide) FoxPro.

    WHILE 
    Если использовано WHILE ,  то операторы  выпол-
няются до тех пор, пока выражение  остается истинным.

    
        Команды FoxPro,  которые  будут выполнятся для сканируемых за-
писей .

    LOOP
    Ключевое слово LOOP может располагаться где угодно между командами
SCAN и ENDSCAN. Оператор LOOP возвращает управление обратно на команду
SCAN.

    EXIT
    Оператор EXIT  передает  управление  команде  вне  цикла   SCAN...
ENDSCAN.  При этом будет выполняться самая первая команда, расположен-
ная непосредственно после команды ENDSCAN.

    NOOPTIMIZE
    Для запрещения Rushmore оптимизации необходимо указать данную  оп-
цию.  Для  получения  дополнительной  информации по оптимизации смотри
описание команды SET OPTIMIZE в данном руководстве и главу Оптимизация
Ваших   Приложений  в  Руководстве  разработчика  (Developer's  Guide)
FoxPro.


?????? ???????????