|
|
Часть 8
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є DIFFERENCE є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Возвращает относительное фонетическое различие между двумя символьными
выражениями
Синтаксис
DIFFERENCE(, )
Возвращаемый тип
Численный
Смотри также
SOUNEX()
Описание
Эта функция возвращает численное значение, лежащее в интервале от
0 до 4, которое представляет собой относительное фонетическое различие
между двумя символьными выражениями. Функция DIFFERENCE() полезна при
поиске в базах данных, когда неизвестно точное правописание данных.
Если символьные выражения очень похожи фонетически, функция
DIFFERENCE() возвращает значение равное 4. Два знаковых выражения,
имеющих достаточно большое фонетическое различие, возвращают 0.
Параметры
,
и задают символьные выражения, сравниваемые
функцией DIFFERENCE().
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Примеры є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
STORE 'Smith' TO name1
STORE 'Smythe' TO name2
STORE 'Smittie' TO name3
STORE '' TO name4
? DIFFERENCE(name1, name2)
4
? DIFFERENCE(name1, name3)
4
? DIFFERENCE(name1, name4)
1
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є DIMENSION є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Создает массив переменных памяти
Синтаксис
DIMENSION ([, ])
[, ([, ])] ...
Замечания
Усилена в FoxPro 2.0: Массивы могут изменять размерность без потери
данных. Массивы также могут передаваться в процедуры по ссылке.
Смотри также
ADEL(), AELEMENT(), AINS(), APPEND FROM ARRAY, ASUBSCRIPT(), COPY TO
ARRAY, DECLARE, GATHER, PUBLIC, PRIVATE, SET COMPATIBLE, SCATTER,
STORE
Описание
Команда DIMENSION позволяет создавать одно- или двумерные массивы
переменных памяти. По действию и синтаксису команда DIMENSION
идентична команде DECLARE.
Параметры
Имя создаваемого массива задается с помощью . В одной
команде DIMENSION может быть создано несколько массивов с помощью
использования дополнительных имен массивов (, ...).
[, ]
После того, как вы задали имя массива с помощью параметра
, вы должны задать размерность массива. Численные выражения
и определяют количество измерений и размерности
массива.
Если вы используете только , создается одномерный массив.
Одномерный массив имеет одну колонку и строк. Например,
команда
DIMENSION arayone(10)
создает одномерный массив с именем ARRAYONE, содержащий одну колонку и
10 строк.
Для создания двумерного массива используйте оба параметра
и . задает число строк в массиве, а задает
число колонок в массиве. Следующий пример создает двумерный массив с
именем ARRATWO, содержащий две строки и четыре колонки:
DIMENSION arraytwo(2, 4)
Одной командой DIMENSION можно создать несколько массивов. В
следующем примере создаются три массива - ARRAYONE и ARRAYTWO из
примеров выше, и третий массив с именем ARRAYTHREE:
DIMENSION arrayone(10), arraytwo(2, 4), arraythree(3, 3)
При описании массивов командами DIMENSION или DECLARE
поддерживаются и круглые, и квадратные скобки. Например, следующие две
команды создают идентичные массивы:
DIMENSION arrayone(10), arraytwo[2, 4], arraythree(3, 3)
DIMENSION arrayone[10], arraytwo(2, 4), arraythree[3, 3]
Элементы массива
Размерность массива определяет количество элементов в массиве.
Каждый элемент в массиве может сохранять один "элемент" информации.
Для определения количества элементов, содержащихся в массиве, надо
умножить число строк () на число колонок ().
Элементы массива переменных памяти могут содержать любой тип
данных. При создании массива командами DECLARE или DIMENSION элементы
массива инициализируются логическим значением "ложно" (.F.). Если
режим SET COMPATIBLE установлен в FOXPLUS или OFF (установка по
умолчанию), то весь массив переменных памяти в целом может
инициализироваться в одно и тоже значение командой STORE. Например:
DIMENSION y(10, 3)
STORE 'initial' TO y
Индексы
Ссылка на элементы массива производится по их индексам. Каждый
элемент в массиве имеет уникальный численный индекс, который
идентифицирует его. Если массив одномерный, индекс элемента является
его номером строки. Например, индекс элемента в третьей строке массива
равен 3. Элементы в двумерных массивах идентифицируются по двум
индексам. Первый индекс указывает положение элемента в троках массива,
а второй индекс указывает положение элемента в колонках массива.
Например, индексы элемента в третьей строке и четвертой колонке
массива равны 3, 4. Более подробно индексы элементов массивов
обсуждаются в описании функции ASUBSCRIPT() в этом руководстве.
Индекс или индексы первого элемента массива переменных памяти
FoxPro всегда равны 1. Если массив двумерный, он также может
идентифицироваться по одному индексу. Для определения того, какой
индекс соответствует паре индексов, элементы сохраняются построчно.
Функция AELEMENT() возвращает соответствующий индекс для пары
индексов. Обратно, функция ASUBSCRIPT() возвращает пару индексов для
одного индекса.
Изменение размерности массивов
Вы можете изменить размерность массива повторным использованием
команды DIMENSION. Размер массива может быть увеличен или уменьшен,
одномерный массив может быть преобразован в двумерный и наоборот.
Для изменения размерности массива используйте его имя. Если число
элементов в массиве увеличивается, содержание всех элементов в
исходном массиве копируется в массив с новой размерностью.
Дополнительные элементы массива получают значение "ложно" (.F.).
Следующий пример демонстрирует результат увеличения размера
одноэлементного массива:
DIMENSION marray(2)
STORE 'A' TO marray(1)
STORE 'B' TO marray(2)
DISPLAY MEMORY LIKE marray
*** Будет выдано следующее ***
MARRAY Pub A
( 1) C "A"
( 2) C "B"
DIMENSION marray(4)
DISPLAY MEMORY LIKE marray
*** Будет представлен массив с новым размером ***
MARRAY Pub A
( 1) C "A"
( 2) C "B"
( 3) L .F.
( 4) L .F.
Если число элементов в массиве уменьшается, дополнительные
элементы отсекаются, а существующие данные в этих элементах теряются.
Если одномерный массив преобразуется в двумерный, содержание
исходного одноэлементного массива копируется в новый массив построчно.
В следующем примере одномерный массив преобразуется в двумерный.
Заметим, что содержание элементов одномерного массива копируется
сначала в первую строку нового массива, затем во вторую строку и т. д.
Дополнительные элементы получают значение "ложно" (.F.).
DIMENSION marrayone(4)
STORE 'E' TO marrayone(1)
STORE 'F' TO marrayone(2)
STORE 'G' TO marrayone(3)
STORE 'H' TO marrayone(4)
DISPLAY MEMORY LIKE marrayone
MARRAYONE Pub A
( 1) C "E"
( 2) C "F"
( 3) C "G"
( 4) C "H"
DIMENSION marrayone(2, 3)
DISPLAY MEMORY LIKE marrayone
MARRAYONE Pub A
( 1, 1) C "E"
( 1, 2) C "F"
( 1, 3) C "G"
( 2, 1) C "H"
( 2, 2) C .F.
( 2, 3) C .F.
Когда двумерный массив преобразуется в одномерный, содержание
исходного двумерного массива копируется в новый массив в построчном
порядке. Первый элемент в первой строке становится первым элементом в
одномерном массиве, второй элемент в первой строке становится вторым
элементом и т. д.
Элементы, строки и колонки могут быть удалены или вставлены в
одномерный или двумерный массив с помощью функций ADEL() и AINS().
Команды APPEND FROM ARRAY, COPY TO ARRAY, SCATTER и GATHER
позволяют легко передавать данные между записями базы данных и
массивами.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
DIMENSION sample(2,3)
STORE `Goodbye' TO sample(1,2)
STORE `Hello' TO sample(2,2)
STORE 99 TO sample(6)
STORE .T. TO sample(1)
DISPLAY MEMORY
В этом примере двумерный массив создается и заполняется данными.
Элементы массива и содержащиеся в них данные представляются на экране.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є DIR or DIRECTORY є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Выводит на дисплей оглавление директории на диске
Синтаксис
DIR | DIRECTORY [[ON] ]
[[LIKE] [] []]
[TO PRINTER | TO FILE ]
Смотри также
DISPLAY FILES, FILER
Описание
Команда DIR выводит на дисплей:
- Имена всех файлов баз данных в текущей директории
- Число записей в каждом файле
- Дату последнего обновления каждого файла
- Размер каждого файла в байтах (базы данных в оригинальном
формате FoxBASE специально помечаются как таковые)
- Число представленных файлов
- Объем доступной памяти на диске
Выводимая информация относится к текущему устройству и директории,
если не заданы аргументы и/или .
Дополнительные опции
[ON]
Устройство, на котором располагается директория.
LIKE
Опция является маршрутом DOS, описывающим местоположение
директории. может включать в себя устройство, если не задана
опция [ON] .
Опция позволяет вам представлять информацию о файлах,
отличных от баз данных. является скелетом спецификации файла,
который может включать в себя метасимволы. Например, для
предоставления списка всех файлов программ в текущей директории
используйте DIR *.PRG.
TO PRINTER | TO FILE
Эта опция пересылает список файлов на принтер (TO PRINTER) или в
текстовый файл (TO FILE) .
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Примеры є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
DIR && Перечисляет базы данных в текущей директории
DIR *.IDX && Перечисляет индексные файлы в текущей директории
DIR V*.DBF && Перечисляют базы данных, начинающиеся с V
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є DISKSPACE є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Возвращает доступное пространство на дисковом устройстве,
установленном по умолчанию.
Синтаксис
DISKSPACE()
Возвращаемый тип
Численный
Смотри также
HEADER(), RECSIZE()
Описание
Функция DISKSPACE() возвращает число байт, в текущий момент
пригодных для использования на устройстве, принятом по умолчанию.
Эта функция полезна для определения, имеется ли достаточное
пространство для дублирования или для выполнения таких команд, которые
требуют большого пространства для дисковых рабочих файлов.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
*** Проверка пространстве на диске перед сортировкой ***
USE customer
*** Считывание размера заголовка базы данных ***
dbf_top = HEADER()
*** Вычисление размера базы данных ***
file_size = dbf_top + (RECSIZE() * RECCOUNT() + 1)
IF DISKSPACE() > (file_size * 3)
@ 5,0 SAY 'Sufficient diskspace to Sort.'
ELSE
@ 5,0 SAY 'Insufficient diskspace. Sort cannot be done.'
ENDIF
В этом примере функция DISKSPACE() используется для проверки
наличия достаточного пространства на диске для выполнения сортировки.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є DISPLAY є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Представляет записи базы данных или выражения
Синтаксис
DISPLAY [[FIELDS] ] []
[FOR ] [WHILE ] [OFF]
[TO PRINTER | TO FILE ]
[NOCONSOLE]
[NOOPTIMIZE]
Смотри также
LIST, SET HEADING, SET MEMOWIDTH
Описание
Команда DISPLAY представляет на экране содержимое текущего файла
базы данных. Она почти идентична команде LIST. Команда DISPLAY будет
отображать информацию на полном экране или в окне. При заполнении окна
или экрана отображение останавливается. Для дальнейшего просмотра
следует нажать любую клавишу или воспользоваться мышью. Команда LIST
будет отображать ту же информацию, но без остановок.
Команда DISPLAY также используется для отображения результатов
выражений, которые могут состоять из литералов, переменных памяти и
массивов, полей базы данных и memo полей. Имена полей будут
отображаться вверху экрана, если не будет выдана команда SET HEADING
OFF.
Дополнительные опции
FIELDS
Если вы не включили опцию FIELDS с заданным списком
полей, будут отображаться все поля базы данных.
Содержимое memo поля не будет отображаться, если его имя не задано
явно в . Ширина отображаемых memo полей определяется
командой SET MEMOWIDTH.
Вы можете использовать область охвата представляемых
записей. Будут представлены только записи, попадающие в область
охвата.
По умолчания область охвата для команды DISPLAY равна NEXT 1.
FOR
Если в формате записи присутствует опция FOR , то будут
отображены только те записи, для которых истинно.
Использование опции FOR позволяет вам представлять записи в
зависимости от условия, отфильтровывая нежелательные записи.
Rushmore будет оптимизировать запрос опции FOR, если
является оптимизируемым выражением. Для более эффективного выполнения
используйте в опции FOR оптимизируемые выражения. Выражения,
оптимизируемые Rushmore, описываются в главе Оптимизация ваших
прикладных программ в "Руководстве разработчика" (Developer's Guide)
по системе FoxPro.
WHILE
Если используется опция WHILE , то отображение информации
будет продолжаться, пока имеет значение "истинно" (.T.).
OFF
Если используется опция OFF, представляется номер записи для
каждой записи.
TO PRINTER | TO FILE
Эта опция пересылает информацию на принтер (TO PRINTER) или в
текстовый файл (TO FILE) . Если загружена установка принтера,
вывод команды DISPLAY, направляемый в файл или на принтер, будет
использовать установки принтера. Вывод на принтер может быть
представлен с различными стилями и размерами. Более подробную
информацию о установках принтера можно найти в главе Печатающие
устройства в "Руководстве разработчика" (Developer's Guide) по системе
FoxPro.
NOCONSOLE
Использование опции NOCONSOLE подавляет вывод на экран или в
активное окно.
NOOPTIMIZE
Для подавления оптимизации Rushmore команды DISPLAY используйте
опцию NOOPTIMIZE. Более подробную информацию об режиме NOOPTIMIZE
можно найти в описании команды SET OPTIMIZE в этом руководстве.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є DISPLAY FILES є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Отображает информацию о файлах на диске
Синтаксис
DISPLAY FILES
[ON ]
[LIKE ]
[TO PRINTER | TO FILE ]
Смотри также
DIRECTORY, FILER, LIST FILES
Описание
Команда DISPLAY FILES используется для отображения информации о
файлах на диске. Вы можете просмотреть все файлы на указанном диске
или в указанной директории, или только те, которые соответствуют
шаблону , содержащему метасимволы.
Команда DISPLAY FILES без аргументов отображает информацию о
файлах базы данных, которые находятся на том диске или в
поддиректории, доступ к которому имеется по умолчанию. Отображаемая
информация включает:
* Имя базы данных
* число записей в базе данных
* Дату и время последнего обновления базы данных
Дополнительные опции
ON
Задает устройство или директорию, в которой находятся файлы.
LIKE
Ограничивает представляемые файлы шаблоном . Шаблон
может содержать метасимволы.
TO PRINTER | TO FILE
Эта опция пересылает информацию на принтер (TO PRINTER) или в
текстовый файл (TO FILE) . Если загружена установка принтера,
вывод команды DISPLAY, направляемый в файл или на принтер, будет
использовать установки принтера. Вывод на принтер может быть
представлен с различными стилями и размерами. Более подробную
информацию о установках принтера можно найти в главе Печатающие
устройства в "Руководстве разработчика" (Developer's Guide) по системе
FoxPro.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є DISPLAY MEMORY є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Отображает содержимое переменных памяти и массивов
Синтаксис
DISPLAY MEMORY [LIKE ]
[TO PRINTER | TO FILE ]
[NOCONSOLE]
Смотри также
DECLARE, DIMENSION, LIST MEMORY, STORE
Описание
Команда DISPLAY MEMORY показывает имя, тип, содержимое и статус
всех определенных в текущий момент переменных памяти и массивов
переменных памяти. Также отображается число всех определенных
переменных памяти, количество используемых байтов и количество байтов,
имеющихся в распоряжении для дополнительных переменных.
Максимальные размеры переменных памяти перечислены в таблице в
"Руководстве разработчика" (Developer's Guide) по системе FoxPro.
Эти пределы могут быть увеличены в файле конфигурации FoxPro.
Более подробную информацию о конфигурации FoxPro можно найти в
"Руководстве разработчика" (Developer's Guide) по системе FoxPro.
Также в дополнение к системным переменным памяти отображаются
описания линеек и пунктов меню, всплывающих меню и окон.
Дополнительные опции
LIKE
Вы можете выборочно просмотреть переменные памяти и массивы с
помощью опции LIKE . Выражение шаблона файлов поддерживает
метасимволы. Например, для представления всех переменных памяти,
начинающихся с буквы A, используйте команду
DISPLAY MEMORY A*
TO PRINTER | TO FILE
Эта опция пересылает информацию на принтер (TO PRINTER) или в
текстовый файл (TO FILE) . Если загружена установка принтера,
вывод команды DISPLAY, направляемый в файл или на принтер, будет
использовать установки принтера. Вывод на принтер может быть
представлен с различными стилями и размерами. Более подробную
информацию о установках принтера можно найти в главе Печатающие
устройства в "Руководстве разработчика" (Developer's Guide) по системе
FoxPro.
NOCONSOLE
Использование опции NOCONSOLE подавляет вывод на экран или в
активное окно.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
STORE 'Goodbye' TO sample1
STORE 'Hello' TO sample2
STORE .T. TO texit
STORE .T. TO mexit
DISPLAY MEMORY LIKE sam*
DISPLAY MEMORY LIKE ?exit
В этом примере создано несколько переменных памяти^ и им присвоены
некоторые значения. Затем команда DISPLAY MEMORY отобразит все
переменные, начинающиеся с трех букв "sam" и все переменные,
содержащие 5 букв и заканчивающиеся "exit".
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є DISPLAY STATUS є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Описание
Отображает статус среды FoxPro
Синтаксис
DISPLAY STATUS
[TO PRINTER | TO FILE ]
[NOCONSOLE]
Замечания
Усилена в FoxPro 2.0: Предоставляет дополнительную информацию
Смотри также
LIST STATUS
Описание
Эта форма команды DISPLAY используется для получения следующей
информации:
* Информация о базах данных и индексных файлах:
- Текущие активные базы данных
- Текущие активные memo файлы
- Псевдонимы баз данных
- Отношения баз данных
- Текущие активные индексы
- Ключи индексных файлов
- Главный индексный файл
- Структурный файл CDX
- Теги индексов CDX
* Информация об открытых файлах низкого уровня:
- Открытые файлы низкого уровня
- Номер дескриптора файла для каждого файла низкого уровня
- Позицию указателя файла для каждого файла низкого уровня
- Атрибуты чтения/записи для каждого файла низкого уровня
* Дополнительная информация о среде FoxPro:
- Используемый файл процедур
- Тип процессора
- Маршрут поиска файлов
- Дисковое устройство, установленное по умолчанию
- Направление информации для печати
- Установка границ
- Текущая рабочая область
- Установки команд SET
- Загруженные бинарные модули
* Сетевая информация (только в FoxPro/LAN):
- Статус атрибута разделения для каждого открытого файла баз
данных
- Заблокированные в данный момент записи в каждом файле баз
данных
- Установка использования EXCLUSIVE
- Установка LOCK
- Установка MULTILOCK
- Значение SET REFRESH
- Значение SET REPROCESS
Дополнительные опции
TO PRINTER | TO FILE
Эта опция пересылает информацию на принтер (TO PRINTER) или в
текстовый файл (TO FILE) .
NOCONSOLE
Использование опции NOCONSOLE подавляет вывод на экран или в
активное окно.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є DISPLAY STRUCTURE є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Отображает структуру базы данных
Синтаксис
DISPLAY STRUCTURE [IN | ]
[TO PRINTER | TO FILE ]
[NOCONSOLE]
Замечания
Усилена в FoxPro 2.0: Отображает индексные теги
Смотри также
LIST STRUCTURE
Описание
Эта форма команды DISPLAY отображает структуру базы данных. Каждое
поле представляется вместе с типом (символьный, численный, дата,
логический или memo) и размером. Если поле численное, показывается
количество десятичных знаков в поле.
Также отображается текущий число записей в базе данных и дата
создания последней версии. Если база данных имеет связанное с ней memo
поле, отображается размер блока memo поля. Также отображается полный
размер всех полей.
База данных может иметь структурный индекс, который открывается
вместе с базой данных. Если тег в структурном индексе имеет то же имя,
что и поле в базе данных6 и индексирован по этому полю, после поля
отображается порядок этого тега (восходящий или нисходящий).
Если сначала была выполнена команда SET FIELDS TO, то с полями,
доступными по этой команде, будет выведен символ "больше чем" (>).
Дополнительные опции
IN |
По умолчанию, команда DISPLAY STRUCTURE работает с текущей рабочей
областью. Вы можете отобразить структуру базы данных, открытой в
другой рабочей области, используя номер рабочей области или
псевдоним базы данных .
TO PRINTER | TO FILE
Эта опция пересылает информацию на принтер (TO PRINTER) или в
текстовый файл (TO FILE) .
NOCONSOLE
Использование опции NOCONSOLE подавляет вывод на экран или в
активное окно.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є DMY є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Преобразует выражение с датой в формат День Месяц Год
Синтаксис
DMY()
Возвращаемый тип
Символьный
Смотри также
MDY(), SET CENTURY, SET DATE
Описание
Функция DMY() возвращает выражение даты в европейском формате День
Месяц Год для выражения с датой. Месяц всегда возвращается с полным
написанием. В том случае, если установлен режим SET CENTURY OFF,
результирующее выражение даты отображается в формате ДД Месяц ГГ. Если
установлен режим SET CENTURY ON, используется формат ДД Месяц ГГГГ.
Параметр
Функция DMY() возвращает выражение даты в европейском формате для
выражения с датой .
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Примеры є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
? DATE()
09/15/91
SET CENTURY ON
? DMY(DATE())
15 September 1991
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є DO є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Выполняет командный файл или файл процедур
Синтаксис
DO
[WITH ]
[IN ]
Замечания
Усилена в FoxPro 2.0: Опция IN
Смотри также
CLEAR, PARAMETERS, PARAMETERS(), PRIVATE, PROCEDURE, PUBLIC, SET
DEVELOPMENT, SET PATH, SET PROCEDURE
Описание
Команда DO выполняет программу. Файл программы сам может включать
команды DO. Уровень вложенности команд DO ограничен глубиной 32.
Когда вы используете команду DO для выполнения программы, будут
выполняться команды, содержащиеся в выполняющемся файле программы.
Программа будет выполняться до тех пор, пока не возникнет одна из
следующих ситуаций:
* Выполнилась команда RETURN
* Выполнилась команда CANCEL
* Выполнилась команда QUIT
* Достигнут конец файла
* Появилась еще одна команда DO
После выполнения командного файла управление передается в
вызывающую программу, Командное окно или DOS.
Выполнение программы в директории и устройстве, отличных от
текущих, из команды Do... (Выполнить...) всплывающего меню Program
(Программа) изменяет текущие директорию и устройство. Директория и
устройство выполняющейся программы становятся текущими.
Если вы не использовали расширение выполняемого файла, FoxPro
ищет и выполняет версии программы в следующем порядке:
* .EXE - Выполняемая версия
* .APP - Прикладная программа
* .FXP - Компилированная версия
* .PRG - Программа
Для задания команде DO программы меню, экрана или запроса вы
должны задать ее расширение (.MPR, .SPR и .QPR соответственно).
Дополнительные опции
WITH
Опция WITH позволяет вам передать параметры в программу. Список
параметров содержит выражения, переменные памяти,
литералы, поля баз данных или функции, определенные пользователем. По
умолчанию, параметры передаются в программу или процедуру по ссылке.
Параметр может передаваться по значению размещением его в круглых
скобках. Передача параметров по значениям или по ссылкам в функции,
определенные пользователем, обсуждается в описании команды SET
UDFPARMS, а более подробную информацию о передаче параметров можно
найти в описании команды PARAMETER.
IN
Опция IN позволяет выполнять процедуру в заданном
программном файле .
Когда программный файл найден, выполняется процедура. Если
программный файл не найден, выдается сообщение "File does not exist"
("Файл не существует"). Если файл найден, но заданная процедура не
является программным файлом, выдается сообщение "Procedure not found"
("Процедура не найдена").
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
CLOSE ALL
SET TALK OFF
DEFINE WINDOW customer FROM 3,3 TO 13,57 ;
FLOAT SHADOW DOUBLE
DEFINE WINDOW panel2 FROM 2, 61 TO 14,74 ;
FLOAT SHADOW DOUBLE COLOR SCHEME 5
USE customer
ACTIVATE WINDOW customer NOSHOW
@ 3,3 SAY 'Company'
@ 3,14 GET customer.company SIZE 1,35
@ 5,3 SAY 'Contact'
@ 5,14 GET customer.contact SIZE 1,35
@ 7,3 SAY 'City/State'
@ 7,14 GET customer.city SIZE 1,21
@ 7,36 GET customer.state
@ 7,39 GET customer.zip
@ 0,3 SAY 'Customer #'
@ 0,15 SAY cust_id SIZE 1,6
@ 0,36 SAY 'Record #'
@ 0,46 SAY RECNO() SIZE 1,3
ACTIVATE WINDOW panel2
@ 1,2 GET act PICTURE;
'@*VN Top;Prior;Next;Bottom;\?Quit' ;
SIZE 1,8,1 DEFAULT 0 VALID actvalid()
READ CYCLE SHOW readshow() COLOR ,r/bg
RELEASE WINDOWS customer,panel2
FUNCTION actvalid
DO CASE
CASE act = 1
GO TOP
CASE ACT = 2
DO go_prev
CASE ACT = 3
DO go_next
CASE act = 4
GO BOTTOM
CASE act = 5
CLEAR READ
ENDCASE
SHOW GETS
RETURN 0
FUNCTION readshow
STORE WOUTPUT() TO currwind
IF SYS(2016) = 'customer' OR SYS(2016) = '*'
ACTIVATE WINDOW customer SAME
@ 0,15 SAY cust_id SIZE 1,6
@ 0,46 SAY RECNO() SIZE 1,3
ENDIF
IF NOT EMPTY(currwind)
ACTIVATE WINDOW (currwind) SAME
ENDIF
RETURN .T.
PROCEDURE go_prev
SKIP -1
IF BOF()
GO TOP
ENDIF
RETURN
PROCEDURE go_next
SKIP 1
IF EOF()
GO BOTTOM
ENDIF
RETURN
В этом примере открывается база данных CUSTOMER, и отображается
первая запись. Вы можете перемещаться вперед, назад, в начало, в конец
и выйти из программы. При выборе вами соответствующей команды, FoxPro
перемещает указатель записи с помощью команды DO, выполняющей
соответствующую процедуру, или, если вы выбрали команду Выход (Quit),
программа прекращает работу.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є DO CASE є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Выполняет набор команд в зависимости от логического условия
Синтаксис
DO CASE
CASE
[CASE
...
CASE
]
[OTHERWISE
]
ENDCASE
Смотри также
DO WHILE, FOR ... ENDFOR, IF ... ENDIF, IIF(), SCAN
Описание
Команда DO CASE используется для выполнения набора команд FoxPro
() в зависимости от результата логического условия. Когда
выполняется команда DO CASE, рассматриваются последовательные
логические условия (CASE); результат проверки определяет, какой набор
команд (если он найдется) будет выполняться.
Когда первый раз встретится истинное (.T.) логическое условие
CASE, выполняются команды, следующие за ним. Выполнение команд
продолжается до тех пор, пока не встретится следующее ключевое слово
CASE или ENDCASE. Затем выполнение продолжается с первой команды после
ключевого слова ENDCASE.
Если логическое условие CASE ложно (.F.), команды после него до
следующего CASE игнорируются.
Будет выполнены команды только после одного CASE - первого
истинного логического условия CASE. Все последующие истинные CASE
игнорируются.
Если все логические условия CASE оказались ложными, наличие или
отсутствие ключевого слова OTHERWISE определяет, будут ли выполняться
дополнительные операторы:
* Если используется ключевое слово OTHERWISE, выполняются все
команды после него, и выполнение затем переходит на команды после
ключевого слова ENDCASE.
* Если ключевое слово OTHERWISE отсутствует, не выполняется ни
одна из команд, расположенных между DO CASE и ENDCASE.
Комментарии могут располагаться в той же строке, что DO CASE и
ENDCASE; при компиляции и выполнении комментарии будут игнорироваться.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
STORE CMONTH(DATE()) TO month && Текущий месяц
DO CASE Вы можете расположить комментарии здесь!
CASE INLIST(month,'January','February','March')
STORE 'First Quarter Earnings' TO rpt_title
CASE INLIST(month,'April','May','June')
STORE 'Second Quarter Earnings' TO rpt_title
CASE INLIST(month,'July','August','September')
STORE 'Third Quarter Earnings' TO rpt_title
OTHERWISE
STORE 'Fourth Quarter Earnings' TO rpt_title
ENDCASE Или вы можете расположить комментарии здесь!
В этом примере FoxPro просматривает последовательность логических
условий CASE до тех пор, пока в одном из списков не будет найдена
переменная MONTH. Соответствующая строка будет записана в переменную
RPT_TITLE, и выполнение оператора DO CASE закончится.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є DO WHILE є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Выполняет команды внутри цикла, пока логическое условие остается
истинным
Синтаксис
DO WHILE
[LOOP]
[EXIT]
ENDDO
Смотри также
DO CASE, EXIT, IF, IIF(), FOR ... ENDFOR, SCAN
Описание
В этой команде структурного программирования вычисляется
логическое выражение . Пока имеет значение "истинно"
(.T.), выполняется набор команд , расположенный между
ключевыми словами DO WHILE и соответствующим ENDDO. Каждое ключевое
слово DO WHILE должно иметь соответствующее ключевое слово ENDDO.
Комментарии могут располагаться в той же строке, что DO WHILE и
ENDDO; при компиляции и выполнении комментарии будут игнорироваться.
Дополнительная опция
Логическое выражение. Пока логическое выражение остается
истинным, выполняются команды между ключевыми словами DO WHILE и
соответствующим ENDDO.
Команды FoxPro, которые выполняются, пока логическое выражение
остается истинным.
LOOP
Ключевое слово LOOP может располагаться в любом месте между DO
WHILE и ENDDO. Ключевое слово LOOP возвращает управление назад прямо в
DO WHILE.
EXIT
Ключевое слово EXIT передает управление из цикла DO WHILE команде,
следующей первой после ключевого слова ENDDO. Ключевое слово EXIT
может располагаться в любом месте между DO WHILE и ENDDO.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
SET TALK OFF
USE payments
julytot = 0
DO WHILE .T. Вы можете расположить комментарии здесь!
IF EOF()
EXIT
ENDIF
IF CMONTH(DATE) <> 'July'
SKIP
LOOP
ENDIF
julytot = julytot + amount
SKIP
ENDDO Или вы можете расположить комментарии здесь!
? 'Total of payments for July is '
?? julytot
В этом примере в цикле DO WHILE считается оплата за июль. Это
происходит до тех пор, пока не будет достигнут конец файла ( EOF ).
Цикл заканчивается и результат выводится на экран.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є DOW є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Возвращает номер дня в неделе, соответствующего выражению с датой
Синтаксис
DOW()
Возвращаемый тип
Численный
Смотри также
CDOW(), DAY(), SYS()
Описание
DOW(), функция дня недели, возвращает численное значение дня
недели, соответствующее выражению с датой . Оно представляет
собой число, лежащее в диапазоне от 1 (для воскресенья) до 7 (для
субботы).
Параметр
Функция DOW() возвращает номер дня для выражения с датой .
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Примеры є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
STORE {06/06/91} TO daynum
? DOW(daynum)
5
? CDOW(daynum)
Thursday
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є DTOC є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Преобразует выражение с датой в символьное выражение
Синтаксис
DTOC( [, 1])
Возвращаемый тип
Символьный
Смотри также
CTOD(), SET CENTURY, SET DATE, SYS()
Описание
DTOC(), символьная функция даты, возвращает символьную строку,
содержащую дату, соответствующую выражению с датой. Формат
представления даты управляется текущими режимами SET CENTURY и SET
DATE.
Параметры
Выражение с датой может представлять собой функцию даты или
переменную памяти, элемент массива или поле базы данных типа дата.
1
Необязательный аргумент 1 вызывает возвращение даты в форме,
пригодной для непосредственного использования при индексировании. В
частности, это может быть полезно при комбинации с функцией TIME() для
работы с базой данных во временной последовательности.
Например, для упорядочения базы данных во временной
последовательности вы можете использовать следующую команду:
INDEX ON DTOC(invdate, 1)+invtime TO Timeindx
где INVDATE и INVTIME являются полями, содержащими соответственно дату
и время ввода данных.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Примеры є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
STORE CTOD('10/31/91') TO thisdate
? DTOC(thisdate)
10/31/91
STORE DTOC({10/31/91}+90) TO expiredate
? 'Your 90-day warranty expires', expiredate
Your 90-day warranty expires 01/29/92
? DTOC({10/31/91},1)
19911031
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є DTOR є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Преобразует градусы в радианы
Синтаксис
DTOR()
Возвращаемый тип
Численный
Смотри также
COS(), RTOD(), SIN(), TAN()
Описание
Функция DTOR() преобразует численное значение угла, заданное в
градусах, в значение, заданное в радианах. Функция DTOR() полезна при
работе с тригонометрическими функциями FoxPro (COS(), SIN(), TAN(),
...). Функция RTOD() может использоваться для преобразования радианов
в градусы.
Параметр
Используйте численное выражение для преобразования в
радианы. Угол, выраженный в формате градусы:минуты:секунды должен быть
преобразован в эквивалентное десятичное представление.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Примеры є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
? DTOR(0)
0.00
? DTOR(45)
0.79
? DTOR(90)
1.57
? DTOR(180)
3.14
? COS(DTOR(90)
0.00
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є DTOS є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Преобразует выражение даты в символьную строку
Синтаксис
DTOS()
Возвращаемый тип
Символьный
Смотри также
CTOD(), DTOC()
Описание
Функция DTOS() возвращает восьмиразрядную символьную строку в
формате ГГГГММДД для заданного выражения даты. Эта функция полезна при
индексировании баз данных в поле даты. Это эквивалентно функции
DTOC(), используемой с необязательным аргументом равным 1.
На символьную строку, возвращаемую функцией DTOS(), команды SET
DATE и SET CENTURY влияния не оказывают.
Параметр
Функция DTOS() возвращает символьную строку, соответствующую
выражению с датой .
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є EDIT є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
EDIT
[FIELDS ]
[]
[FOR ]
[WHILE ]
[FREEZE ]
[KEY [, ]]
[LAST]
[LEDIT] [REDIT]
[LPARTITION]
[NOAPPEND]
[NOCLEAR]
[NODELETE]
[NOEDIT | NOMODIFY]
[NOLINK]
[NOMENU]
[NOOPTIMIZE]
[NORMAL]
[NOWAIT]
[PARTITION ]
[PREFERENCE ]
[REST]
[SAVE]
[TIMEOUT ]
[TITLE ]
[VALID [F:] [ERROR ]]
[WHEN ]
[WIDTH ]
[[WINDOW ]
[IN [WINDOW] | IN SCREEN]]
[COLOR SCHEME | COLOR ]
Замечания
Усилена в FoxPro 2.0: Ключевые слова LEDIT, LPARTITION, NOLINK,
NOOPTIMIZE и REDIT; опции PARTITION, VALID и WHEN; поддержка COL(),
ROW(), VARREAD() и SET SKIP
Смотри также
BROWSE, CHANGE
Описание
Команда EDIT работает идентично команде CHANGE. Более полную
информацию можно найти в описании команды CHANGE.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є EJECT є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Устанавливает принтер на начало следующей страницы
Синтаксис
EJECT
Смотри также
EJECT PAGE, ON PAGE, SET DEVICE, SET PRINTER, PCOL(), PROW(), System
Memory Variables
Описание
Использование команды EJECT подготавливает ваш принтер для печати
следующей страницы. EJECT устанавливает режим "перевод страницы", если
системная переменная _PADVANCE установлена в "FORMFEED". Если
переменная _PADVANCE установлена в "LINEFEED", то будет установлен
режим "перевод строки".
EJECT переустанавливает функции PCOLO и PROWO но не изменяет
значения системных переменных _PAGENO и _PFILENO.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
В этом примере на печать выводится содержимое полей COMPANY и
ADRESS (убедитесь, что принтер подключен и находится во включенном
состоянии). Когда число напечатанных строк станет больше 62,
переводится страница.
USE customer
SET DEVICE TO PRINTER
DO WHILE NOT EOF()
@ PROW()+1,10 SAY 'Company: ' + company
@ PROW()+1,10 SAY 'Address: ' + address1
@ PROW()+1,1 SAY ''
IF PROW() > 62
EJECT
ENDIF
SKIP
ENDDO
SET DEVICE TO SCREEN
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є EJECT PAGE є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Перевод страницы в зависимости от условия
Синтаксис
EJECT PAGE
Смотри также
EJECT, ON PAGE, SET ALTERNATE, SET DEVICE, SET PRINTER, PCOL(),
PROW(), System Memory Variables
Описание
Команда ON PAGE используется для перевода страницы при выводе на
печать. Перевод страницы зависит от системной переменной памяти
_PADVANCE и от того, установлена ли процедура ON PAGE.
Если системная переменная _PADVANCE установлена в значение
"FORMFEED", а процедура ON PAGE не установлена, команда EJECT PAGE
выполняет следующие действия:
* На принтер посылается команда перевода страницы, если принтер
включен.
* Посылается _PLENGTH - _PLINENO команд перевода строк на экран
и/или в альтернативный файл, если альтернативный файл был
открыт.
* Системная переменная _PAGENO увеличивается на единицу.
* Системная переменная _PLINENO устанавливается в 0.
Если системная переменная _PADVANCE установлена в значение
"LINEFEED", процедура ON PAGE установлена, а системная переменная
памяти _PLINENO меньше номера строки страницы, заданного в текущей
процедуре ON PAGE, команда EJECT PAGE выполняет следующие действия:
* На принтер посылается необходимое количество команд перевода
строк на принтер, экран и/или альтернативный файл для перехода
на начало новой страницы.
Если процедура ON PAGE не установлена, или если системная
переменная памяти _PADVANCE установлена в "LINEFEEDS", а системная
переменная памяти больше числа строк страницы, заданного в текущей
процедуре ON PAGE, команда EJECT PAGE выполняет следующие действия:
* Посылается _PLENGTH - _PLINENO команд перевода строк на принтер,
экран и/или в альтернативный файл, если альтернативный файл был
открыт.
* Системная переменная _PAGENO увеличивается на единицу.
* Системная переменная _PLINENO устанавливается в 0.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є EMPTY є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Определяет, является ли выражение пустым.
Синтаксис
EMPTY()
Возвращаемое значение
Логическое
Смотри также
LEN()
Описание
Эта функция возвращает значение "истинно" (.T.), если выражение
является пустым. Если выражение не является пустым, функция
EMPTY() возвращает значение "ложно" (.F.).
Параметр
В выражение вы можете включать символьное, численное,
логическое выражение, выражение с датой или имя memo поля в открытой
базе данных.
Функция EMPTY() будет возвращать значение "истинно" (.T.), если
выражения следующего типа данных содержат следующую информацию:
ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї
і Оценка типов данных і
ГДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і Тип данных і Содержание і
ГДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і і Пустые символы, пробелы, символы табуляции, і
і Символьный і символы возврата каретки или перевода строк і
і і или любые комбинации этих символов і
ГДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і Численный і 0 і
ГДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і Дата і Пустой символ (т. е. CTOD(' ')) і
ГДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і Логический і Ложно (.F.) і
ГДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
і Memo і Пустое (не имеет содержания) і
АДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
CLOSE ALL
USE customer
SET FILTER TO NOT EMPTY(comments) && Непустое memo поле
BROWSE LAST
SET FILTER TO
В этом примере база данных CUSTOMER имеет набор фильтров, который
распознает только записи, не имеющие пустого memo поля (COMMENTS).
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є EOF є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Возвращает логическое значение "истинно", если указатель записи
размещается на конце файла базы данных.
Синтаксис
EOF([ | ])
Возвращаемый тип
Логический
Смотри также
BOF()
Описание
Эта функция возвращает логическое значение "истинно" (.T.), если
достигается конец файла. "Конец файла" имеет место в том случае, когда
* указатель записи проходит последнюю логическую запись в базе
данных,
* когда какая-либо из команд FIND, LOCATE или SEEK успешно не
завершена.
Функция EOF() возвращает логическое значение "ложно" (.F.) в том
случае, если конец файла не достигнут.
Параметр
|
В том случае, когда аргумент опущен, возвращается состояние
выбранной рабочей области, используемой в текущий момент.
Вы можете исследовать достижение конца файла базы данных, открытой
в другой рабочей области, указывая эту область с помощью цифры
или псевдонима .
Значение "ложно" (.F.) возвращается функцией EOF(), если в
указанной рабочей области не существует открытой базы данных. Если нет
баз данных с указанным псевдонимом, выдается сообщение "Alias not
found" ("Псевдоним не найден"). Более подробную информацию о создании
псевдонима для базы данных можно найти в описании команды USE.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
SET TALK OFF
CLEAR
USE customer
DEFINE WINDOW mskip FROM 9,10 TO 13,65 DOUBLE COLOR SCHEME 5
ACTIVATE WINDOW mskip
@ 1,5 GET mchoice FUNCTION '*HN \ | ?
Смотри также
DELETE FILE, FILER
Описание
Команда ERASE удаляет файл с диска.
Внимание!!!
Осторожно используйте эту команду - файлы, удаленные этой командой
не могут быть восстановлены. Даже если включен режим SAFETY в команде
SET, вы не будете предупреждены перед удалением файла.
Дополнительные опции
является удаляемым файлом. Накладываются следующие
ограничения:
* В имя файла должно быть включено расширение
* Если файл находится на диске или в директории, доступ к которому
не определен по умолчанию, то обозначение диска и/или имя директория
также должны быть включены в имя файла.
Метасимволы не используются в команде ERASE.
?
ERASE ? открывает диалог Open File (Открыть файл), с помощью
которого вы можете выбрать удаляемый файл.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
USE items
COPY STRUCTURE EXTENDED TO temp
USE temp
APPEND BLANK
REPLACE field_name WITH 'allcost'
REPLACE field_type WITH 'N'
REPLACE field_len WITH 10
REPLACE Field_dec WITH 2
CREATE backup FROM temp
USE backup
APPEND FROM items
REPLACE ALL allcost with quantity * price
ERASE temp.dbf
В этом примере структура базы данных ITEMS помещается в файл базы
данных с именем TEMP. Информация структуры меняется и из нее создается
новая база данных ( BACKUP ). Затем в базу данных BACKUP добавляются
все записи из ITEMS а переменные перемещаются в поле ALLCOST.
Временная база данных ( TEMP ) затем уничтожается.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є ERROR є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Возвращает номер ошибки, соответствующий ошибке, которая захвачена
процедурой ON ERROR.
Синтаксис
ERROR()
Возвращаемое тип
Численный
Смотри также
MESSAGE(), ON ERROR, RETRY, RETURN
Описание
Функция ERROR() возвращает номер ошибки, вызвавшей появление
состояния ON ERROR. Для возврата значения отличного от 0 стандартная
программа ON ERROR должна быть активна для функции ERROR().
Когда во время выполнения программы ошибка захватывается в
ловушку, тип ошибки может быть идентифицирован в стандартной программе
ON ERROR с помощью функции ERROR(). Затем перед продолжением
выполнения программы могут быть предприняты меры по исправлению.
Соответствующее описание ошибки может быть возвращено с использованием
функции MESSAGE().
Функция ERROR() сбрасывается по командам RETURN или RETRY.
Для получения сведений о номерах ошибок, которые приводятся в
специальном списке, и соответствующих им сообщениях об ошибках
обратитесь к Приложению, даваемому в "Руководстве разработчика"
(Developer's Guide) по системе FoxPro.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
CLEAR
ON ERROR DO errhand WITH ERROR(), MESSAGE()
* Следующая строка генерирует ошибку, так как команды BRWSE нет
BRWSE
ON ERROR RETURN
*** Errhand ***
PROCEDURE errhand
PARAMETER errnum,message
@ 23,0 SAY Message+' ERROR: '+STR(Errnum)
RETURN
Этот пример представляет простую стандартную программу для
обработки ошибок, и сообщение, выдаваемое при наличии ошибки.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є EVALUATE є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Вычисляет выражение и возвращает результат.
Синтаксис
EVALUATE()
Возвращаемый тип
Символьный, численный, дата, логический или memo
Замечания
Новая в FoxPro 2.0
Смотри также
TYPE()
Описание
Функция EVALUATE() вычисляет символьное выражение и возвращает
результат. EVALUATE() подобна функции TYPE(), однако возвращает
результат выражения вместо типа выражения. Выражения, содержащие
EVALUATE(), не могут быть оптимизированы с помощью Rushmore.
Параметр
Символьное выражение может быть литеральной символьной
строкой, заключенной в одинарные или двойные кавычки. Символьное
выражение может быть также любым допустимым выражением FoxPro или
переменной в памяти, элементом массива или полем базы данных,
содержащими допустимое выражение FoxPro.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Ниже приводятся некоторые примеры команд в командном окне и результаты
этих команд:
? EVALUATE('5 * 4')
20
USE customer
? EVALUATE('customer.contact')
N. Baker
? EVALUATE('DATE()')
10/31/91
STORE 'DATE() = {10/31/91}' TO halloween
? EVALUATE(halloween)
.T.
? TYPE(halloween)
L
Везде, где это возможно, EVALUATE() должна использоваться для
замены макроподстановок, использующих оператор &. Макроподстановка с &
работает медленно, поэтому всегда используйте EVALUATE() или
именованное выражение для замены макроподстановки.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є EXIT є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Выход из циклов DO WHILE, FOR или SCAN
Синтаксис
EXIT
Смотри также
DO WHILE, FOR ... ENDFOR, SCAN
Описание
Команда EXIT передает управление из тела цикла DO WHILE... ENDDO,
FOR ... ENDFOR или SCAN ... ENDSCAN оператору, непосредственно
следующему за ENDDO, ENDFOR или ENDSCAN.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
SET TALK OFF
USE payments
julytot = 0
DO WHILE .T.
IF EOF()
EXIT
ENDIF
IF CMONTH(date) <> 'July'
SKIP
LOOP
ENDIF
julytot = julytot + amount
SKIP
ENDDO
? 'Total of payments for July is '
?? julytot
В этом примере в цикле DO WHILE до тех пор, пока не встретится EOF
( конец файла ) считается зарплата. Когда мы достигнем EOF результат
будет выведен на экран.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є EXP є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Функция EXP() возвращает значение e в степени x, где x является
численным выражением.
Синтаксис
EXP()
Возвращаемый тип
Численный
Смотри также
LOG(), SET DECIMALS
Описание
Математическая функция EXP() возвращает значение e в степени x.
Значение e, основания натурального логарифма, равно приблизительно
2,71828. Число десятичных разрядов, возвращаемых функцией EXP(),
определяется командой SET DECIMALS.
Параметр
Численное выражение представляет собой показатель степени x
в показательном уравнении e в степени x.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
? EXP(0)
1.00
? EXP(1)
2.72
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є EXPORT є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Копирует данные из базы данных FoxPro в файл с другим форматом.
Синтаксис
EXPORT TO
[FIELDS
[] [FOR ]
[WHILE ]
[NOOPTIMIZE]
[TYPE] DIF | MOD | SYLK | WK1
| WKS | WR1 | WRK | XLS
Замечания
Новая в FoxPro 2.0
Смотри также
APPEND FROM, COPY TO, IMPORT
Описание
Команда EXPORT копирует записи из выбранного в данный момент файла
базы данных в новый файл. Это позволяет вам использовать данные из
базы данных FoxPro в других пакетах программного обеспечения.
Если экспортируемый файл базы данных был индексирован, новый файл
будет создаваться в индексном порядке.
Дополнительные опции
является новым файлом, в который FoxPro будет
экспортировать данные. Если вы не задали в имени файла расширение,
назначается стандартное расширение для файла данного типа.
FIELDS
Если вы включаете опцию FIELDS (Поля) и список полей, то вы должны
задать поля, копируемые в новый файл. Если же опция FIELDS опущена, в
файл копируются все поля. Поля memo не копируются в новый файл, даже
если имя поля memo включается в список полей.
Вы можете включить (объем) записей для копирования. В файл
будут скопированы только записи, попадающие в границы заданного
объема.
Стандартный объем для команды EXPORT это все записи.
FOR
Если задана опция FOR , в файл будут копироваться только
записи, удовлетворяющие логическому условию . Включение FOR
позволяет вам копировать записи в зависимости от условия,
отфильтровывая нежелательные записи.
Rushmore будет оптимизировать запрос EXPORT FOR, если
является допустимым для оптимизации. Для улучшения выполнения
используйте допустимые для оптимизации выражения в дополнительной
опции FOR. Выражения, допустимые для оптимизации Rushmore, обсуждаются
в главе Оптимизация ваших прикладных программ в "Руководстве
разработчика" (Developre's Guide) по системе FoxPro.
WHILE
Если включается WHILE , записи будут копироваться, пока
логическое выражение равно "истине" (.T.).
NOOPTIMIZE
Для блокировки оптимизации Rushmore команды EXPORT, включите
NOOPTIMIZE. Более подробную информацию о NOOPTIMIZE можно найти в
описании команды SET OPTIMIZE в этом руководстве и в описании Rushmore
в главе Оптимизация ваших прикладных программ в "Руководстве
разработчика" (Developre's Guide) по системе FoxPro.
TYPE
Вы должны задавать тип создаваемого файла. Дополнительная опция
TYPE необязательна, но вы должны включить один из следующих типов
создаваемого файла.
DIF
Поля базы данных FoxPro становятся векторами (колонками), а записи
становятся кортежами (строками) в DIF (Формат Обмена Данными,
используемый в VisiCalc) файле. Новый файл получит расширение .DIF,
если расширение не задано явно.
MOD
Файлы MOD, используемые Microsoft's Multiplan версии 4.01.
SYLK
Файл SYLK является форматом обмена Символических Связей
(используемым в Multiplan), в котором поля базы данных FoxPro
становятся крупноформатной таблицей, а записи становятся строками.
Файлы SYLK не имеют стандартного расширения.
WK1
С помощью этой опции из базы данных FoxPro может быть создана
крупноформатная таблица Lotus 1-2-3. Крупноформатной таблице
назначается расширение .WK1 (для использования в Lotus 1-2-3 2.x).
Поля базы данных становятся колонками в новой крупноформатной таблице;
записи в базе данных становятся строками таблицы.
WKS
С помощью этой опции из базы данных FoxPro может быть создана
крупноформатная таблица Lotus 1-2-3. Крупноформатной таблице
назначается расширение .WKS (для использования в Lotus 1-2-3 1-A).
Поля базы данных становятся колонками в новой крупноформатной таблице;
записи в базе данных становятся строками таблицы.
WR1
С помощью этой опции из базы данных FoxPro может быть создана
крупноформатная таблица Lotus Symphony. Крупноформатной таблице
назначается расширение .WK1 (для использования в Symphony версии
1.10). Поля базы данных становятся колонками в новой крупноформатной
таблице; записи в базе данных становятся строками таблицы.
WRK
С помощью этой опции из базы данных FoxPro может быть создана
крупноформатная таблица Lotus Symphony. Крупноформатной таблице
назначается расширение .WK1 (для использования в Symphony версии
1.01). Поля базы данных становятся колонками в новой крупноформатной
таблице; записи в базе данных становятся строками таблицы.
XLS
С помощью включения опции XLS база данных FoxPro может быть
скопирована в крупноформатную таблицу Microsoft Excel версии 2. Поля
базы данных становятся колонками в крупноформатной таблице; записи в
базе данных становятся строками таблицы. Расширение .XLS назначается
новой крупноформатной таблице, если вы явно не задали иное расширение.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є EXTERNAL є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Предупреждает менеджер проектов о неопределенной ссылке.
Синтаксис
EXTERNAL ARRAY | LABEL | LIBRARY
| MENU | PROCEDURE | REPORT
| SCREEN
Замечания
Новая в FoxPro 2.0
Смотри также
BUILD APP, BUILD PROJECT
Описание
Команда EXTERNAL используется для включения файлов и обработки
неопределенных ссылок в проекте, созданном менеджером проектов FoxPro.
Команда EXTERNAL используется только менеджером проектов и
игнорируется во время выполнения программы. Если вы не используете
менеджер проектов для вашей прикладной программы, то вам не нужно
использовать команду EXTERNAL.
Более подробную информацию о создании проектов с помощью менеджера
проектов можно найти в главе Проект - Основные организационные
средства в "Руководстве разработчика" (Developer's Guide) по системе
FoxPro.
Файлы, заданные с помощью команды EXTERNAL будут включены в проект
менеджером проектов. Вы должны включать ключевые слова (LABEL,
LIBRARY, MENU, PROCEDURE, REPORT или SCREEN) перед именами файлов для
того, чтобы указать менеджеру проектов тип файлов, включаемых в
проект.
Менеджер проектов должен быть также предупрежден о имени файла,
содержащем именованное выражение или макроподстановку. Это
обеспечивает то, что все нужные файлы будут включены в проект при его
создании. Кроме того, менеджер проектов должен быть предупрежден о
массивах, созданных в другой процедуре, или функциях, определенных
пользователем.
Более подробную информацию о именованных выражениях и
макроподстановках можно найти в первой главе и параграфе & этого
руководства. Во всех возможных случаях используйте именованные
выражения вместо макроподстановок для ускорения выполнения.
Для идентификации типов файлов или массивов в команде EXTERNAL
возможны различные ключевые слова. За ключевым словом следуют имена
файлов или имена массивов. Вы можете включить несколько имен файлов
или массивов после ключевого слова, если будете разделять имена
запятыми. Ниже приводятся ключевые слова и обсуждается их
использование и примеры:
Дополнительные опции
ARRAY
Когда массив создается в программе, а затем используется в
программе более низкого уровня, включите EXTERNAL ARRAY с именем
массива в программе более низкого уровня.
В следующем примере первая программа создает массив с именем
INVOICE. Массив инициализируется, и вызывается программа более низкого
уровня DISPINVO. DISPINVO показывает содержание массива, созданного в
программе более высокого уровня. Команда EXTERNAL ARRAY INVOICE
включается для предупреждения менеджера проектов.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
DIMENSION invoice(4)
STORE 'Paid' TO invoice
DO dispinvo
*** Программа dispinvo ***
PROCEDURE
EXTERNAL ARRAY invoice
? invoice (1)
? invoice (2)
? invoice (3)
? invoice (4)
RETURN
*** Конец программы dispinvo ***
Когда массив передается функции, определенной пользователем, (ФОП)
или процедуре, соответствующий массив в ФОП или процедуре должен быть
идентифицирован для менеджера проектов. Включите ключевое слово ARRAY
с именем массива, включенного в утверждение PARAMETER.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
DIMENSION firstarray(2) && Создание массива
EXTERNAL ARRAY arraytwo && Имя массива, используемого в ФОП
SET TALK OFF
STORE 10 TO firstarray(1)
STORE 2 TO firstarray(2)
= ADDTWO(@firstarray) && Передача массива по ссылке в ФОП
FUNCTION ADDTWO
PARAMETER arraytwo
CLEAR
arraytwo(1) = arraytwo(1) +2
arraytwo(2) = arraytwo(2) +2
? arraytwo(1)
? arraytwo(2)
LABEL
LABEL указывает менеджеру проектов, что файл, который вы включаете
в косвенную ссылку на файл или макроподстановку, является файлом
определений этикеток. Более подробную информацию о создании этикеток в
FoxPro можно найти в описании команды CREATE LABEL.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
EXTERNAL LABEL dunlabel && Должна существовать форма метки dunlabel
STORE 'dunlabel' to labelfile
LABEL FORM (labelfile) PREVIEW
LIBRARY
Включайте LIBRARY, когда имя файла библиотеки используется в
косвенной ссылке на файл или макроподстановке в команде SET LIBRARY.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
EXTERNAL LIBRARY regress && Должна существовать библиотека regless
STORE 'regless' TO statfunc
SET LIBRARY TO (statfunc)
MENU
Если файл определений меню включается в косвенную ссылку на файл
или макроподстановку, включайте ключевое слово MENU и имя файла меню.
Меню может быть создано с помощью компоновщика меню FoxPro. Более
подробную информацию о компоновщике меню можно найти в "Руководстве по
интерфейсу" (Interface Guide) системы FoxPro.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
EXTERNAL MENU pickfile && Должно существовать меню pickfile
STORE 'pickfile' TO sysmenpad1
MODIFY MENU (sysmenpad1)
PROCEDURE
PROCEDURE используется для идентификации внешней процедуры или
функции, определенной пользователем.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
EXTERNAL PROCEDURE delblank && Должна существовать процедура delblank
STORE 'delblank' TO trimblanks
DO (trimblanks) WITH 'A B C D E'
REPORT
REPORT указывает менеджеру проектов, что имя файла, включаемого в
косвенную ссылку на файл или макроподстановку, является именем файла
определений отчета. Более подробную информацию о создании отчетов в
FoxPro можно найти в описании команды CREATE REPORT.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
EXTERNAL REPORT overdue && Должен существовать отчет overdue
STORE 'overdue' TO reportfile
REPORT FROM (reportfile) PREVIEW
SCREEN
Если файл определений экрана включается в косвенную ссылку на файл
или макроподстановку, включайте ключевое слово SCREEN и имя файла
экрана. Экраны могут создаваться с помощью компоновщика экранов
FoxPro. Более подробную информацию о компоновщике экранов можно найти
в "Руководстве по интерфейсу" (Interface Guide) системы FoxPro.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
EXTERNAL SCREEN dataentr && Должен существовать экран dataentr
STORE 'dataentr' TO reportfile
MODIFY SCREEN (reportfile)
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є FCHSIZE є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Изменяет размер файла, открытого низкоуровневой функцией работы с
файлами.
Синтаксис
FCHSIZE(, )
Параметры
Дескриптор файла.
Желаемый размер файла.
Возвращаемый тип
Численный
Смотри также
FCLOSE(), FCREATE(), FEOF(), FFLUSH(), FGETS(), FOPEN(), FPUTS(),
FREAD(), FSEEK(), FWRITE()
Описание
Вы можете изменить размер файла, открытого низкоуровневой функцией
работы с файлами, с помощью функции FCHSIZE(). Вы можете увеличить
размер файла или усечь файл после заданного байта.
Когда размер файла увеличивается, FoxPro распределяет сектора для
файла на устройстве, на котором этот файл был открыт. Так как
FCHSIZE() не инициализирует новое пространство файла, оно может
содержать данные, которые раньше располагались на этих секторах.
Поэтому, обратите внимание на то, что именно вы управляете новым
пространством файла.
Возвращается новый размер файла в байтах. Если FCHSIZE() не может
изменить размер файла (недостаточно пространства на диске,
задан некорректный дескриптор файла, файл предназначен только для
чтения и т. п.), возвращается значение -1.
Важно!!!
Эта функция часто используется для усечения файла до длины 0.
Параметры
Включайте численный дескриптор файла для того файла,
размер которого вы хотите изменить. Дескриптор файла возвращается
функцией FOPEN(), когда вы открываете файл для низкоуровневого
использования, или функцией FCREATE(), если вы просто создаете файл.
Если файл открывается с помощью FOPEN(), он должен быть открыт с
режимом запись или чтение/запись для того, чтобы можно было изменить
его размер.
Окончательный размер файла в байтах задается в . Если
меньше исходного размера, то файл будет усечен. Если
больше исходного размера файла, то файл будет расширен.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є FCLOSE є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Подавляет и закрывает файл или коммуникационный вход, открытый
низкоуровневой функции работы с файлами.
Синтаксис
FCLOSE()
Возвращаемый тип
Логический
Смотри также
CLOSE ALL, FCHSIZE(), FCREATE(), FEOF(), FFLUSH(), FGETS(), FOPEN(),
FPUTS(), FREAD(), FSEEK(), FWRITE()
Описание
Эта низкоуровневая функция работы с файлами подавляет файл,
открытый низкоуровневой функцией работы с файлами, из памяти на диск и
закрывает его.
В том случае, если файл успешно закрыт, функция FCLOSE()
возвращает значение "истинно" (.T.) и выключает указатель файла. Если
файл не может быть закрыт, функция FCLOSE() возвращает значение
"ложно" (.F.).
CLOSE ALL может также использоваться для закрытия низкоуровневых
файлов.
Параметр
Численный дескриптор файла присваивается при создании файла с
использованием функции FCREATE() или при открытии файла с
использованием функции FOPEN(). Для закрытия низкоуровнего файла с
помощью FCLOSE(), задайте дескриптор файла в численном выражении
.
Если коммуникационный порт был открыт с помощью низкоуровневой
команды, он может быть закрыт с помощью задания дескриптора файла,
назначенного порту при открытии.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є FCOUNT є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Возвращает число полей в открытой базе данных.
Синтаксис
FCOUNT([ | ])
Возвращаемый тип
Численный
Смотри также
DBF(), FSIZE(), NDX(), SYS(7)
Описание
Функция FCOUNT() возвращает число полей в открытой базе данных.
Параметр
|
Если вы не задали рабочую область или псевдоним, возвращается
число полей в базе данных в текущей рабочей области.
Вы можете получить число полей в базе данных, открытой в другой
рабочей области, задав номер рабочей области или псевдоним базы
данных .
Число 0 возвращается, если в заданной рабочей области нет открытой
базы данных. Если нет базы данных с заданным псевдонимом, выдается
сообщение "Alias not found" ("Псевдоним не найден").
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
CLOSE ALL
SELECT 0
USE salesrep
SELECT 0
USE customer
? FCOUNT('CUSTOMER') && Число полей в Customer.dbf
10
? FCOUNT('SALESREP') && Число полей в Salesrep.dbf
7
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є FCREATE є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Создает и открывает файл.
Синтаксис
FCREATE( [, ])
Параметры
Имя создаваемого файла
Атрибуты DOS, назначаемые файлу.
Возможные значения смотрите в таблице ниже.
Возвращаемый тип
Численный
Смотри также
CLOSE ALL, FCHSIZE(), FCLOSE(), FEOF(), FFLUSH(), FGETS(), FOPEN(),
FPUTS(), FREAD(), FSEEK(), FWRITE()
Описание
Функция FCREATE() представляет собой низкоуровневую функцию работы
с файлами, которая создает новый файл и открывает файл для
использования. Если файл с заданным именем уже существует, файл
перезаписывается.
Помимо этого, функция FCREATE() присваивает файлу численный
дескриптор файла для идентификации его в других низкоуровневых
функциях работы с файлами системы FoxPro. Когда файл создается,
FCREATE() возвращает число дескриптора файла. Если файл никак не может
быть создан, возвращается значение -1.
С помощью FCREATE() вы не можете открыть коммуникационный порт, но
вы можете это сделать низкоуровневой функцией работы с файлами
FOPEN().
Параметры
Имя создаваемого файла задается в . В вы можете
включить указатель устройства, путь и имя файла. В том случае, если
указатель устройства или путь не указаны, файл создается в директории
по умолчанию.
Вы можете указать атрибуты ДОС файла, включив необязательный
численный аргумент . Ниже приводится список имеющихся атрибутов
файла:
I========================================I
I Номера атрибутов файла I
I========================================I
I Атрибуты файла I
I========================================I
I 0 Чтение/Запись (по умолчанию) I
I----------------------------------------I
I 1 Только чтение I
I----------------------------------------I
I 2 Сокрытие I
I----------------------------------------I
I 3 Только чтение/Сокрытие I
I----------------------------------------I
I 4 Система I
I----------------------------------------I
I 5 Только чтение/Система I
I----------------------------------------I
I 6 Система/Сокрытие I
I----------------------------------------I
I 7 Только чтение/Сокрытие/СистемаI
I========================================I
Информация о файлах, создаваемых и открываемых с использованием
функции FCREATE(), может быть представлена в виде списка для вывода на
экран или печатающее устройство по команде DISPLAY STATUS. Команда
DISPLAY STATUS предоставляет следующую информацию, касающуюся файлов,
открытых или созданных низкоуровневыми функциями работы с файлами:
- имя устройства, директории и файла для каждого открытого файла
- номер указателя файла для каждого файла
- позиция указателя файла в каждом файле
- атрибуты чтения/записи каждого файла
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
IF FILE('errors.txt') && Существует ли файл?
errfile = FOPEN('errors.txt',12) && Если да, открыть
&& для чтения/записи
ELSE
errfile = FCREATE('errors.txt') && Если нет, создать его
ENDIF
IF errfile < 0 && Проверить наличие ошибки
&& открытия файла
WAIT 'Cannot open or create output file' WINDOW NOWAIT
ELSE && Если нет ошибки, записывать
&& в файл
=FWRITE(errfile, 'Error information to be written here')
ENDIF
=FCLOSE(errfile) && Закрыть файл
MODIFY FILE errors.txt NOWAIT && Открыть файл в окне
&& редактирования
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є FEOF є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Определяет, расположен ли указатель файла на конце файла
Синтаксис
FEOF()
Возвращаемый тип
Логический
Смотри также
FCHSIZE(), FCLOSE(), FCREATE(), FGETS(), FOPEN(), FPUTS(), FREAD(),
FSEEK(), FWRITE()
Описание
Эта низкоуровневая функция работы с файлами возвращает значение
"истинно" (.T.), если указатель файла позиционирован в конце файла
(EOF).В том случае, если указатель файла не находится в конце файла,
функция FEOF() возвращает значение "ложно (.F.).
Параметр
Включайте дескриптор файла для файла, который вы хотите
проверить на выполнение условия достижения конца файла. Если вы
зададите дескриптор файла для коммуникационного порта, открытого
функцией FOPEN(), FEOF() всегда будет возвращать значение "истинно"
(.T.). Низкоуровневые функции работы с файлами FOPEN() и FCREATE()
используются для назначения дескриптора файла переменной в памяти.
Обычно, задается этой переменной в памяти.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
*** Открыть файл test.txt ***
file_handle = FOPEN('test.txt')
*** Переместить указатель на BOF ***
m_position = FSEEK(file_handle, 0)
*** Если указатель файла находится на BOF и EOF, файл пуст ***
*** В противном случае, файл должен что-нибудь содержать ***
IF FEOF(file_handle)
WAIT WINDOW 'This file is empty!' NOWAIT
ELSE
WAIT WINDOW 'This file has something in it!' NOWAIT
ENDIF
= FCLOSE(file_handle)
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є FERROR є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Возвращает ноль, если последняя низкоуровневая функция работы с
файлами не вызвала ошибки
Синтаксис
FERROR()
Возвращаемый тип
Численный
Смотри также
FCHSIZE(), FCLOSE(), FCREATE(), FEOF(), FFLUSH(), FGETS(), FOPEN(),
FPUTS(), FREAD(), FSEEK(), FWRITE()
Описание
Функция FERROR() возвращает нулевое значение, если предшествующая
функция низкого уровня была успешно выполнена. Если выполнение
предшествующей функции неуспешно, возвращается ненулевое значение.
Ниже приводится список значений, которые могут возвращаться функцией
FERROR(), а также причины возникновения ошибок.
I====================================================================I
I Номера ошибок и причины их возникновения I
I====================================================================I
I 2 Файл не найден I
I--------------------------------------------------------------------I
I 4 Открыто слишком много файлов (за пределами указателей) I
I--------------------------------------------------------------------I
I 5 Доступ не допускается I
I--------------------------------------------------------------------I
I 6 Задан неразрешенный указатель файла I
I--------------------------------------------------------------------I
I 8 Вне пределов памяти I
I--------------------------------------------------------------------I
I 25 Ошибка поиска (поиск не может осуществляться до запуска файла) I
I--------------------------------------------------------------------I
I 29 Диск полон I
I--------------------------------------------------------------------I
I 31 Ошибка, связанная с открытием файла или общий отказ (встретилосьI
I условие EOF ("конец файла")) I
I====================================================================I
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Следующий пример создает и открывает временный файл для элемента
данных. Если файл создается успешно, программа создает окно ввода, где
вы можете ввести первое имя, последнее имя и позицию. Эта информация
затем записывается во временный файл. FWRITE() не помещает возврат
каретки в конец строки. FPUTS() помещает возврат каретки в конец
строки.
SET TALK OFF
CLEAR
tmpfile = SYS(3) && Создать имя временного файла
handle = FCREATE(tmpfile) && Открыть временный файл
IF handle < 0 && Ошибка, возникшая при создании файла
DO CASE && Определение вида ошибки
CASE FERROR() = 4
reason = 'Too many files open (out of handles)'
CASE FERROR() = 5
reason = 'Access denied'
CASE FERROR() = 8
reason = 'Out of memory'
CASE FERROR() = 29
reason = 'Disk full'
CASE FERROR() = 31
reason = 'General Failure'
ENDCASE
*** Показ ошибки ***
WAIT WINDOW 'Can't create file: '+ reason NOWAIT
RETURN
ELSE && Файл создан успешно
DEFINE WINDOW wingets FROM 10,20 TO 18,60 ;
CLOSE FLOAT SHADOW SYSTEM ;
COLOR SCHEME 8 TITLE ' Name Entry '
ACTIVATE WINDOW wingets
@ 1,5 SAY "First Name:" GET fname DEFAULT SPACE (15)
@ 3,5 SAY "Last Name :" GET lname DEFAULT SPACE (15)
@ 5,5 SAY "Position :" GET pos DEFAULT SPACE (15)
READ
=FWRITE(handle,'First name: ') && Вывод информации,
=FPUTS(handle,fname) && введенной пользователем
=FWRITE(handle,'Last name: ')
=FPUTS(handle,lname)
=FWRITE(handle, 'Position: ')
=FPUTS(handle,pos)
=FCLOSE(handle) && Закрытие файла
DEACTIVATE WINDOW wingets
WAIT 'Press a key to view the file' WINDOW
ENDIF
IF !WEXIST('wingets')
DEFINE WINDOW wingets FROM 10,20 TO 18,60 ;
CLOSE FLOAT SHADOW SYSTEM ; COLOR SCHEME 8 TITLE ' Name Entry '
ENDIF
MODIFY FILE (tmpfile) NOWAIT WINDOW wingets && Просмотр файла
CLEAR WINDOW && Удаление окна
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є FFLUSH є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Подавляет в памяти и сбрасывает на диск файл, открытый низкоуровневой
функцией работы с файлами
Синтаксис
FFLUSH()
Возвращаемый тип
Логический
Смотри также
FCHSIZE(), FCLOSE(), FCREATE(), FEOF(), FGETS(), FOPEN(), FPUTS(),
FREAD(), FSEEK(), FWRITE()
Описание
Функция FFLUSH() подавляет в памяти и сбрасывает на диск файл,
открытый низкоуровневой функцией работы с файлами. FFLUSH()
освобождает память, которая используется буфером файла
Параметр
Включайте дескриптор файла для файла, подавляемого на диск.
Низкоуровневые функции работы с файлами FOPEN() и FCREATE()
используются для назначения дескриптора файла переменной в памяти.
Обычно, задается этой переменной в памяти.
Команда FLUSH отличается от функции FFLUSH(). FLUSH не работает с
файлами, открытыми при использовании низкоуровневых функций работы с
файлами FOPEN() или FCREATE().
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є Пример є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Следующий пример открывает файл INPUT.DAT (создавая его при
необходимости), и осуществляет запись в него. После записи первых двух
строк программа подавляет буферы для гарантии того, что строки будут
записаны на диск. Программа записывает следующие две строки, снова
подавляет буферы и закрывает файл.
IF FILE('input.dat')
test_file = FOPEN('input.dat',2)
ELSE
test_file = FCREATE('input.dat')
ENDIF
io_bytes = FWRITE(test_file,'Test output')
io_bytes = FWRITE(test_file,' for low level file I/O')
flush_ok = FFLUSH(test_file)
io_bytes = FWRITE(test_file,'Test output2')
io_bytes = FWRITE(test_file,' for low level file I/O')
flush_ok = FFLUSH(test_file)
close_ok = FCLOSE(test_file)
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є FGETS є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Возвращает серию байтов из файла или коммуникационного порта,
открытого низкоуровневой функцией работы с файлами
Синтаксис
FGETS( [, ])
Параметры
Дескриптор файла
Число возвращаемых байтов
Возвращаемый тип
Символьный
Смотри также
FCHSIZE(), FCLOSE(), FCREATE(), FEOF(), FFLUSH(), FOPEN(), FPUTS(),
FREAD(), FSEEK(), FWRITE()
Описание
Функция FGETS() возвращает серию байтов из файла или
коммуникационного порта, пока не встретится символ возврата каретки.
Применяя серию вызовов функции FGETS() , вы можете считывать файл
последовательно по строкам.
Функция FGETS() возвращает серию байтов из файла как строку
символов. Байты возвращаются, начиная с позиции указателя файла, и
этот процесс продолжается до тех пор, пока не встречается возврат
каретки. Затем указатель файла позиционируется на байте,
непосредственно следующим за возвратом каретки. Возврат каретки не
возвращается как часть строки. Функцией FGETS() подачи строк
игнорируются.
Параметры
Включайте дескриптор файла в FGETS() для получения данных
их файла или коммуникационного порта. Низкоуровневые функции работы с
файлами FOPEN() и FCREATE() используются для назначения дескриптора
файла переменной в памяти. Обычно, задается этой переменной в
памяти.
Вы можете указать число байт, которые функция FGETS() будет
возвращать с помощью необязательного численного аргумента .
Функция FGETS() возвратит байтов , если ранее не встретится
возврат каретки. Если в пределах байтов встречается возврат
каретки, функция FGETS() возвращает все байты, лежащие между начальной
позицией указателя файла и возвратом каретки.
В том случае, если аргумент не включен, функция FGETS()
возвращает по умолчанию 254 байта.
ЦДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД·
є FIELD є
УДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЅ
Назначение
Возвращает имя поля в базе данных
Синтаксис
FIELD( [, | ])
Параметры
Номер поля
Номер рабочей области для базы данных
Псевдоним базы данных
Возвращаемый тип
Символьный
Смотри также
FCOUNT()
Описание
Функция FIELD() возвращает имя поля в базе данных, которое
соответствует номеру поля .
Параметры
задает номер поля. Если является 1, возвращается
имя первого поля базы данных, если 2, то имя второго поля и т. д.
Пустая строка будет возвращаться в том случае, если больше
числа полей в базе данных. Имена полей возвращаются в символах
верхнего регистра.
|
Если вы не задали рабочую область или псевдоним, возвращается имя
поля базы данных, открытой в текущей рабочей области. Вы можете
получить имя поля базы данных, открытой в другой рабочей области,
задавая номер рабочей области |