Загрузка переменных в оперативную память 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Загрузка переменных в оперативную память



Если при работе с приложением возникает необходимость раз­местить в оперативной памяти переменные, значения которых были определены ранее, то надо воспользоваться командой:

RESTORE FROM <имя файла> | FROM MEMO <имя поля> [ADDITIVE]

В результате работы команды оперативная память очищается от имеющихся переменных, и в нее помещаются переменные из указанного файла с расширением.mem или из Memo-поля. Для того чтобы сохранить в оперативной памяти переменные, значе­ния которых определены до использования команды SAVE TO, и добавить в оперативную память переменные с отличными (дру­гими) именами из файла (или Memo-поля), надо указать опцию ADDITIVE.

Просмотр переменных

Переменные, которые хранятся в оперативной памяти, можно просмотреть с помощью команды:

DISPLAY MEMORY [LIKE <шаблон>] [ТО PRINTER | FILE <имя файла>]

На экране каждая переменная занимает одну строку, куда вы­водится имя, тип, значение и статус переменной. После заполне­ния экрана надо нажать либо клавишу ENTER, либо клавишу «пробел» для продолжения вывода переменных на экран. При желании можно направить вывод переменных либо на принтер (ТО PRINTER), либо в файл (ТО FILE).

Удаление переменных

Все переменные или часть переменных, хранящихся в оператив­ной памяти, можно удалить с помощью команды:

RELEASE <список имен переменных> RELEASE ALL [LIKE | EXCEPT <шаблон>]

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

команду:

CLEAR MEMORY

 

КОМАНДЫ УПРАВЛЕНИЯ

Команды управления являются важнейшим средством построения „грамм. Эти команды не могут быть опробованы и использованы в интерактивном режиме, а только в программах.

Команда IF. В зависимости от условия команда выполняет те или иные <команды>, находящиеся внутри конструкции IF...ENDIF.

IF <условие>

<команды>

[ELSE

<команды>]

ENDIF

Если условие истинно, выполняются все <команды>, следующие от IF до ELSE, если ложно, то <команды> от ELSE до ENDIF. Ес­ли необязательная фраза ELSE отсутствует и условие ложно, все внутренние <команды> пропускаются и выполняется команда, сле­дующая за ENDIF. Допустимо вложение друг в друга конструкций типа IF... ENDIF и других структурных команд.

Команда DO CASE. Конструкция DO CASE... ENDCASE решает задачи, аналогичные команде IF, но в ней может быть указано сразу несколько условий, которые последовательно проверяются во всех фразах CASE.

DO CASE

CASE <условие 1>

<команды>

CASE <условие 2>

<команды>

[OTHERWISE

<команды>]

ENDCASE

Если встретилось истинное <условие>, выполняются нижеследующие <команды> до следующей фразы CASE, или OTHERWISE, или ENDCASE, и конструкция завершается. Если ни одно из CASE-условий не истинно, выполняются <команды>, стоящие за фразой OTHERWISE до ENDCASE, если фраза OTHERWISE отсутствует, выполняется ни одна команда.

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

 

КОМАНДЫ ЦИКЛОВ

Так же как и в языках программирования, при разработке прило­жений баз данных предусмотрены команды циклов. Назначение команд, а иногда и формат команд, аналогичное.

Цикл по условию

Формат команды:

DO WHILE <выр. L>

[LOOP]

[EXIT]

ENDDO

Цикл выполняется многократно, до тех пор, пока истинно ло­гическое условие <выр. L>. Для принудительного выхода их цикла, до нарушения логического условия <выр. L>, используют команду EXIT. Команда LOOP используется для прекращения вычислений, предусмотренных текущей итерацией, и принуди­тельного перехода к следующей итерации внутри цикла.

Фиксированный цикл

Формат команды:

FOR <пер.> = <выр. Nl> TO <выр. N2> [ STEP <выр. N3> ]

[EXIT]

[LOOP]

ENDFOR | NEXT

Цикл выполняет фиксированное количество итераций (шагов).

<пер.> называется переменной цикла. В переменной цикла фик­сируется количество выполненных итераций, то есть после вы­полнения очередной итерации значение переменной цикла уве­личивается на значение шага цикла <выр. N3X

<выр. Nl> задает начальное (стартовое) значение переменной

цикла.

<выр. N2> задает конечное значение цикла.

<выр. N3> задает шаг цикла.

<выр. Nl>, <выр. N2> и <выр. N3> имеют целочисленный тип.

По умолчанию шаг цикла принят равным 1. Если <выр. N2> больше <пер>, то цикл будет выполняться до тех пор, пока <пер.> не будет больше <выр. N2>. Это событие обязательно наступит, так как после выполнения каждой итерации переменная цикла <пер.> будет увеличиваться на 1. В некоторых случаях требуется, чтобы переменная цикла после выполнения каждой итерации увеличивалась быстрее, тогда в <выр. N3> указывают целое число, отличное от 1, которое и будет прибавляться к <пер.> после выполнения очередной итерации. Мы рассмотрели цикл на увеличение (сложение), то есть переменная цикла с каж­дой новой итерацией увеличивала свое значение на величину ша­га цикла <выр. N3> и цикл прекращался, когда переменная цикла <пер.> становилась больше <выр. N2>.

Допускается задание цикла на уменьшение (вычитание). В этом случае начальное значение <выр.N1> переменной цик­ла <пер.> должно быть больше конечного значения <выр. N2>, а шаг цикла <выр. N3> должен быть целым и отрицательным. В этом случае после каждой выполненной итерации из пере­менной цикла <пер.> будет вычитаться значение шага цикла <выр. N3> и цикл закончит свою работу после того, как пере­менная цикла <пер.> станет меньше конечного значения цик­ла <выр. N2X

Цикл сканирования

Цикл сканирования организует просмотр записей текущей таб­лицы.

Формат команды:

SCAN

[ FOR <L1>]

[ WHILE <L2> ]

[ NOOPTIMIZE ]

[LOOP]

[EXIT]

ENDSCAN

Цикл сканирования работает аналогично циклу DO WHILE, но предназначен для работы с текущей таблицей. Назначение оп­ций аналогичное. По умолчанию цикл сканирования выполня­ется для всех записей.

 

Световое меню

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

Световое меню — это набор пунктов (элементов) меню, один из которых является активным, то есть выделен цветом. Выбор пункта меню осуществляется либо щелчком мыши на пункте ме­ню, либо с помощью клавиш-стрелок курсор устанавливается на нужный пункт меню и нажимается клавиша Enter. Отказ от выбора пункта меню — нажатие клавиши Esc.

Вызванное световое меню накладывается, как правило, по­верх прежнего изображения на экране. После удаления меню с экрана происходит автоматическое восстановление первона­чального вида экрана. При работе с меню допускается использо­вание клавишных команд, дублирующих выбор пункта меню. Такие клавишные команды называются «горячими» клавишами. Если меню многоуровневое (три и более уровней), то использо­вание «горячих» клавиш становится эффективным средством работы с меню.

При работе прикладных программ, содержащих меню, на эк­ран могут выводиться системные сообщения. Текст системных сообщений накладывается на элементы меню и впоследствии не удаляется. Для запрета вывода на экран системных сообщений используется команда SET TALK OFF.

По умолчанию системные сообщения выводятся на экран, то есть установлена команда SET TALK ON.

При работе со световым меню можно задать режим, когда при нажатии клавиши с первой буквой имени пункта меню этот пункт (команда) меню становится активным. Для задания этого режима используется команда SET CONFIRM OFF.

Если установлена команда SET CONFIRM ON, то после нажатия клавиши-буквы дополнительно надо нажать либо кла­вишу Enter, либо клавишу SpaceBar.

При работе конкретного приложения в разные моменты вре­мени некоторые пункты меню могут быть не доступны для выбо­ра и на экране выделены в полтона (бледно). Для того чтобы сде­лать пункт меню недоступным для выбора, надо перед именем пункта установить символ «\». В вертикальных (POPUP) меню иногда необходимо одну группу пунктов отделить разделительной чертой от других пунктов меню, причем курсор на разделитель­ной черте не фиксируется. Для этих целей вместо имени пункта меню надо указать сочетание двух символов «\-».

В FoxPro предусмотрены две технологии построения меню: FOX-меню и dBASE-меню.

Меню типа FOX активны только во время работы программы и являются частью программы. При выборе пункта такие меню вырабатывают числовой код, который запоминается и анализи­руется с последующей выработкой реакции на выбор пункта ме­ню. Как правило, анализ выбора пользователя осуществляется с помощью оператора DO CASE... ENDCASE. Из меню этого типа можно сделать единственный выбор. Чтобы организовать многократный выбор из меню, надо описание меню поместить внутрь цикла.

Меню типа dBASE после своего описания остается в опера­тивной памяти резидентно и может многократно вызываться на экран и удаляться с экрана. Меню может вызываться не только из конкретного приложения, но и из окна Command даже в том случае, если закрыта база данных и программный файл закончил свою работу. Для удаления меню из оперативной памяти предусмотрены специальные команды. При своей работе меню вырабатывает не только числовые коды, которые фиксируют выбор пользователя, но и непосредственно вызывает процедуры и команды на выполнение. В качестве пунктов меню здесь можно использовать имена файлов и структуру базы данных, а также организовать множественный выбор пунктов меню.

 

ТИПЫ ЛОГИЧЕСКИХ МОДЕЛЕЙ

Существует три типа логических моделей: иерархическая, сете­вая и реляционная.

Иерархическая модель

Модель этого типа жестко структурированная, то есть взаимо­связь между объектами внутри модели подчинена строгому ран­жиру (рис. 1.2). Подчинение объектов разделено на уровни. На первом уровне представлен один главный объект, которому под­чиняются объекты второго уровня. Причем объект первого уров­ня не может напрямую управлять объектом третьего уровня. Уп­равление объектом третьего уровня возможно только через объ­ект второго уровня. Также запрещены взаимосвязи на одном уровне.

Сетевая модель

Сетевая модель более демократична. В сетевой модели отсутству­ет понятие главного и подчиненного объекта (рис. 1.3). Один и тот же объект может выступать как главный и как подчиненный, то есть иметь любое количество взаимосвязей. Здесь допустимы связи на одном уровне.

Реляционная модель

В реляционной модели объекты представлены в виде таблиц (двумерных массивов). Причем таблицей могут отображаться не только объекты, но и связи. Каждая таблица состоит из произ­вольного количества строк и произвольного количества столб­цов. Обязательным условием построения реляционной модели является наличие в каждой таблице первичного ключа. Этот вид модели имеет наибольшее распространение при построении баз данных.

МОДУЛЬНОСТЬ ПРОГРАММ

Программный продукт включает в себя внешние и внутренние процедуры, которые оформляются как отдельные модули. Мо­дульное построение программного продукта позволяет повысить его наглядность и унифицировать часто повторяющиеся опера­ции, сокращает время написания и отладки программ. При вы­полнении программных кодов, если FoxPro встречает обращение к подпрограмме (модулю), то он ищет текст модуля в следующей последовательности:

• в текущей процедуре;

• в процедурном файле;

• снизу вверх в старших процедурах;

• на диске в виде отдельной программы.

Внешние процедуры

Внешней процедурой называется некоторая последовательность команд, которые выполняют определенное и законченное дейст­вие по обработке данных. Внешняя процедура (или несколько процедур) хранятся в отдельном файле на диске. Приложение мо­жет содержать несколько процедурных файлов, но подключен (активен) всегда только один процедурный файл. Подключение процедурного файла производится командой:

SET PROCEDURE TO [<имя процедурного файла>]

Команда без опции закрывает процедурный файл.

Вызов внешней процедуры

Формат команды:

DO <имя программного файла внешней процедуры>

[ WITH <список параметров> ]

[ IN <имя файла> ]

Назначение опций:

WITH < список параметров> - содержит список входных и выходных параметров. В качестве входных и выходных парамет­ров допускается использование переменных, констант и выраже­ний.

IN <имя файла> — явно указывает место хранения программно­го файла и используется вместо предварительно подаваемой ко­манды SET PROCEDURE.

Команда DO выполняет указанную программу. Если указан­ная программа не откомпилирована или в нее были внесены изменения, то она автоматически компилирует указанную про­грамму, а затем ее выполняет.

Если в <имени программного файла> опущено расширение, то расширения будут просматриваться в следующем порядке:.exe,.app,.fxp,.prg.



Поделиться:


Последнее изменение этой страницы: 2017-01-25; просмотров: 176; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.219.208.117 (0.036 с.)