Реферат: Курсовик по FoxPro
* ----Использование страхового копирования данных
SET CLEAR OFF
SET SAFETY OFF
* Если файл NORM.MEM есть...
IF FILE('C:\MY_WORKS\TRANSF~1\MYPROJ~1\norm.mem')
* ...он загружается в память.
RESTORE FROM('C:\MY_WORKS\TRANSF~1\MYPROJ~1\norm.mem')
* Если переменная завершения истинна...
IF normz
* ...копируем все файлы таблиц в страховую директорию
!COPY C:\MY_WORKS\TRANSF~1\MYPROJ~1\*.dbf C:\MY_WORKS\TRANSF~1\MYPROJ~1\Insure\*.dbf>NUL
* иначе сообщение.
ELSE
WAIT normd+' было аварийное завершение .'+;
'Восстановить (ENTER) данные?' WINDOW
* В случае нажатия Enter, файлы восстанавливаются из страховой директории.
IF LASTKEY()=13
!COPY C:\MY_WORKS\TRANSF~1\MYPROJ~1\Insure\*.dbf C:\MY_WORKS\TRANSF~1\MYPROJ~1\*.dbf>NUL
ENDIF
ENDIF
ENDIF
* Устанавливается переменная завершения, переменная текущей даты и обе запоминаются в файл.
normz= .T.
normd=DTOC( DATE( ))
SAVE ALL LIKE norm? TO C:\MY_WORKS\TRANSF~1\MYPROJ~1\norm
Здесь сначала выясняется, есть ли файл NORM.MEM в текущей директории. Если есть, файл загружается и выясняется значение переменной NORM. При NORMZ=.T. все файлы таблиц копируются в страховую поддиректорию внутри рабочей директории.
Поскольку файлов в системе обычно довольно много, проще использовать не собственные команды копирования FoxPro, а выполнить (через знак !) соответствующие команды DOS, для которых можно указать маску. Чтобы системные сообщения команд не выводились на экран, они переадресованы на пустое устройство ДОС - NUL. Если NORMZ=.F., значит, предыдущий сеанс работы завершился аварийно. На экран выдаются сообщение и запрос о необходимости восстановления данных из страховой директории (нажатием клавиши Enter). Такой запрос нужен для того, чтобы отказаться от копирования данных, если завершение программы было ненормальным, но данные, как знает пользователь, не пострадали. После завершения анализа переменной NORMZ она получает значение .F. и запоминается в файле NORM.MEM вместе с переменной NORMD. Далее идет тело собственно прикладной системы. Если при этом произойдет сбой, переменная NORMZ сохранит свое значение. При нормальном завершении программы этой переменной присваивается значение .Т. и она сохраняется в файле.
Кроме того, необходимо организовать систему контекстно-зависимой справки, вызываемой по F1. Текст помощи предварительно заносится в файл Table_Help.dbf, структура которого показана ниже.