Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АЛТАЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ.docx
Скачиваний:
13
Добавлен:
06.08.2019
Размер:
163.01 Кб
Скачать

Функции даты и времени

Получение текущей даты. Функция DATE()

set date BRITISH

? date()

Результат: 02/03/00

set date GERMAN

? date()

Результат: 02.03.00

set date AMERICAN

? date()

Результат: 03/02/00

set century on

set date german

? date()

Результат: 02.03.2000

Определение текущего дня недели. Функции DOW, CDOW

DOW(varDate) - номер дня недели varDate - переменная даты.

Следует помнить, что первый день недели в FoxPro – воскресенье:

set date british

? dow({^2000-01-01})

Результат: 2

Функция СDOW(varDate) - английское название дня недели varDate - переменная даты:

? сdow({^2000-01-01})

Результат: Monday

Определение месяца заданной даты. Функции MONTH, GOMONTH

Функция MONTH(varDate) - возвращает номер месяца даты varDate:

? MONTH({^2000-03-01})

Результат: 3

? MONTH({^2000-05-01})

Результат: 5

Функция GOMONTH(varDate, n) - возвращает дату, отстоящую на n месяцев от даты varDate:

set century on

? GOMONTH({^2000-03-07},3)

Результат: 07.06.2000

? GOMONTH({^2000-03-07},-5)

Результат: 07.10.1999

Функция CMONTH(varDate) - возвращает номер месяца даты varDate:

? CMONTH({^2000-03-01})

Результат: March

? CMONTH({^2000-05-15})

Результат: May

Определение года. Функция YEAR()

Функция YEAR(varDate) - возвращает год даты varDate:

? YEAR(date())

Результат: 2000

Функции времени

Текущие значения даты и времени можно получить при помощи системной функции DATETIME().

Функция TIME() возвращает системное время:

? TIME()

Результат: 12:02:56

Функция SECONDS() возвращает количество секунд с точностью до тысячных с начала суток:

? SECONDS()

71256.226

Функция HOUR() возвращает количество часов по величине типа дата-время:

? HOUR(DATETIME())

вернет величину текущего часа.

? MINUTE(DATETIME())

вернет количество минут текущего времени.

? SEC(DATETIME())

вернет количество секунд текущего времени.

 

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

Пример функции, возвращающей по номеру месяца его русское название

procedure r_month

parameters сdt

set talk off

if parameters() <> 1

? 'Неверное число параметров'

? 'Вызывать функцию нужно так:'

? '=r_month(<дата>)'

? 'Возвращает русское название месяца'

return ''

endif

if type('cdt') <> 'D'

? 'Неверный тип параметра'

? 'Вызывать функцию нужно так:'

? '=r_month(<дата>) '

? 'Возвращает русское название месяца'

return ''

endif

do case

case month(r_month) = 1

return 'Январь'

case month(r_month) = 2

return 'Февраль'

case month(r_month) = 3

return 'Март'

case month(r_month) = 4

return 'Апрель'

case month(r_month) = 5

return 'Май'

case month(r_month) = 6

return 'Июнь'

case month(r_month) = 7

return 'Июль'

case month(r_month) = 8

return 'Август'

case month(r_month) = 9

return 'Сентябрь'

case month(r_month) = 10

return 'Октябрь'

case month(r_month) = 11

return 'Ноябрь'

case month(r_month) = 12

return 'Декабрь'

endcase

 

Задание:

1.    Написать функцию, возвращающую по дате русское название дня недели.

2.    Написать функцию, возвращающую по дате русское название месяца.

3.    Написать функцию, возвращающую по дате текстовую строку: название дня недели, число, название месяца и год.

Работа с файлами на высоком уровне

Редактирование файлов. Команды MODIFY FILE ... и MODIFY COMMAND ...

Синтаксис

MODIFY COMMAND | FILE [<file>] [NOEDIT] [NOWAIT] [RANGE <expN1>, <expN2>] Вызывает встроенный текстовый редактор системы FoxPro, который может использоваться для создания и модификации файлов. Если используется MODIFY COMMAND, то по умолчанию предполагается расширение имени <файла> (.PRG). В форме команды MODIFY FILE по умолчанию предполагается расширение имени <файла> (.TXT). Команды MODIFY COMMAND и MODIFY FILE поддерживают шаблоны, позволяющие открыть окна редактирования для всех файлов, удовлетворяющих указанному шаблону.

Параметры

NOEDIT Опция запрещает модификацию текста или информации в окне редектирования, т.е. текст может только просматриваться.

NOWAIT При использовании MODIFY COMMAND или MODIFY FILE внутри программы, после открытия окна редактирования выполнение программы приостанавливается до закрытия окна. Опция NOWAIT позволяет продолжать выполнение программы после открытия окна редактирования, т.е. программа не ждет закрытия окна, а продолжает выполнение с команды, следующей за MODIFY COMMAND/FILE.

RANGE <вырN1>, <вырN2> Фраза RANGE позволяет открыть окно редактирования, в котором указанный диапазон символов уже будет выбран (выделен). Выделяются символы с позиции <вырN1> и до позиции <вырN2> (не включая ее). Если <вырN1>=<вырN2> символв не выбираются и курсор рстается в позиции <вырN1>.

Копирование файлов. Команда COPY FILE ... TO ...

Синтаксис

COPY FILE <файл1> TO <файл2> Обеспечивает дублирование закрытого файла. <файл1> любого типа будет в <файл2>.

Коментарии

Имена обеих файлов следует указывать с расширением. Нельзя использовать команду для копирования открытого файла.

Переименование файла. Команда RENAME

Синтаксис

RENAME <файл1> TO <файл2> Выполняет изменение имени файла на диске.

Коментарии

Старое <файл1> и новое имя <файл2> файла должны включать расширение имени. Если файлы расположены на диске, отличном от активного по умолчанию, именам файлов должен предшествовать идентификатор диска и маршрут.

Hовое имя файла не может совпадать с именем существующего файла, расположенного в той же директории.

Запрещается изменять имя открытого файла.

Уничтожение файлов. Команды DELETE FILE ... и ERASE ...

Синтаксис

DELETE FILE <файл> | ? Удаляет файл с диска.

ERASE <файл> | ? Удаляет файл с диска.

Коментарии

Имя файла должно указываться полностью, т.е. включая расширение имени. Если удаляемый файл находится на устройстве или в директории, отличном от активного по умолчанию, имени файла должен предшествовать идентификатор диска и/или имя директории.

Использование фразы ? позволяет устанавливать имя удаляемого файла в диалоге. В команде не допускается применение шаблона имени с включением символов * и ?.

Удаляемый файл не может быть активным.

При использовании данной команды необходима внимательность - удаленный файл нельзя восстановить. Даже при установленном SET SAFETY ON предупреждения об удалении выдаваться не будет.

Функция GETFILE()

Синтаксис

GETFILE([<вырC1>] [, <вырС2>]) Вызывает диалоговое окно для открытия файла. Возвращаемое значение – символьное.

Коментарии

Hеобязательный аргумент <вырС1> указывает расширение файлов, которые должны быть выведены в прокручиваемый список диалогового окна открытия файла, когда не выбран двоичный индикатор All Files (все файлы). Полный список расширений имен файлов, используемых в FoxPro, приведен в соответствующем разделе Help.

Существует достаточно много форм для указания расширения в <вырС1>:

1.    Указание конкретного расширения, например, "DBF". Будут выведены файлы только с этим расширением.

2.    Указание списка конкретных расширений, разделенных точкой с запятой, например, "DBF;TXT;". В данном случае будут выведены все файлы с расширением DBF, затем все файлы с расширением TXT и, наконец, будут выведены все файлы без расширения имени, которые не встретились ранее как файлы DBF или TXT.

3.    Указание только точки с запятой ";", при этом будут выведены все файлы без расширения имени.

4.    Указание пустого выражения "". При этом выводятся все файлы текущего директория.

5.    Указание шаблона имени с использованием специальных символов * и ?. Будут выведены все файлы, чье имя соответствует шаблону.

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

Hеобязательный аргумент <вырС2> задает сообщение, которое будет выведено в верхней части диалогового окна открытия файла.

Как отмечалось, функция возвращает имя выбранного файла. Если файл не выбран (нажата клавиша Esc или выбрана опция Cancel (отменить)), функция возвращает пустую строку.

Функция FILE()

Синтаксис

FILE(<файл>) Возвращает логическое значение "истина" (.T.), если символьное выражение <файл> является именем существующего файла. Если такого файла нет, функция возвращает значение "ложь" (.F.).

Коментарии

Имя файла должно быть указано с расширением.

Функция выполняет поиск <файла> только в текущем директории. Для поиска в других директориях, имени файла должен предшествовать полный маршрут поиска в соответствии с правилами, установленными в MS-DOS.

Имя <файла> может быть строковой константой (должно быть заключено в кавычки), значением временной переменной символьного типа, символьным выражением.

Функция FULLPATH()

Синтаксис

FULLPATH(<файл1> [, <вырN> | <файл2>]) Возвращает полный маршрут DOS для заданного файла. Возвращаемое значение – символьное.

Параметры

<файл1> Имя файла. Поиск <файла> выполняется по маршруту FoxPro. Hеобходимо обязательно указываать расширение файла. Если файл находится по маршруту FoxPro, возвращается его полное имя с маршрутом. Маршрут FoxProустанавливается командой SET PATH. Если файл не найден по маршруту FoxPro, полный маршрут и имя файла будут возвращены в случае нахождения файла в текущем директории по умолчанию. Директорий по умолчанию указывается в команде SET DEFAULT.

<вырN> Указывает, на то, что FULLPATH() выполняет поиск по маршруту DOS перед поиском по маршруту FoxPro. Выражение <вырN> может принимать любое значение.

<файл2> Имя второго файла. Если <файл2> указан, FULLPATH() возвращает полный маршрут связи <файла1> с <файлом2>.

Коментарии

Функция FULLPATH() возвращает полный маршрут DOS для файла или полный маршрут связи с другим файлом.

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

Работа с таблицами

Visual Foxpro представляет собой систему управления базами данных. Основой хранилища данных базы данных VFP, являются таблицы. Таблицы VFP физически представляют собой ASCII файлы с расширением dbf (собственно тафличный файл) и два вспомогательных файла – fpt-файл для хранения значений полей переменной длины (т.н. memo-полей) и – cdx-файл – файл для хранения информации об индексах. Для работы с таблицами существует достаточно много команд и функций:

 

CREATE TABLE

MODIFY STRUCTURE

SET

USE

SELECT

DISPLAY STRUCTURE

LIST STRUCTURE

APPEND BLANK

REPLACE

DELETE

PACK

RECALL

SKIP

GO

GO TOP

GO BOTTOM

RECNO()

LOCATE FOR

FOUND()

Создание таблицы

Создать DBF - таблицу можно интерактивно (построитель таблицы вызывается из главного меню File -> New -> Table) и из командного окна при помощи команды - CREATE TABLE

 

CREATE TABLE | DBF имяТаблицы  ( имяПоля1 Тип [(Ширина [,Точность]) [,имяПоля2 ... ]])

 

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

Описание параметров команды:

имяТаблицы - имя  создаваемой таблицы, которое  может содержать путь и

являться выражением. Рекомендуется набирать имя таблицы латиницей. Длина

имени таблицы (для DOS) должна быть не больше 8 символов.

имяПоля1 и имяПоля2 - имена полей новой таблицы. Каждое имя поля может представлять собой выражение.

Тип - буква, означающая тип данных поля. Hекоторые типы данных требуют обязательного задания  ширины  поля  и точности (количество символов после запятой).

ТипШирина и Точность могут быть следующими:

 

Тип

Ширина

Точность

Описание

C

N

 

Строка символов длиной n

D

 

 

Дата

F

N

d

Плавающее  длиной n с точностью d

L

 

 

Логический

M

 

 

Memo – тестовое поле переменной длины

N

N

d

Число длиной n с точностью d

 

Открытие таблицы

Для открытия таблицы предназначена команда USE