Я:
Результат
Архив

МЕТА - Украина. Рейтинг сайтов Webalta Уровень доверия



Союз образовательных сайтов
Главная / Учебники / Учебники на русском языке / Компьютерные науки / Clipper


Компьютерные науки - Учебники на русском языке - Скачать бесплатно



Синтаксис: @<эвырЧ1>,<эвырЧ2> TO <эвырЧ3>,<эвырЧ4> [DOUBLE]

Рисует на экране одинарные или двойные рамки.
<эвырЧ1...вырЧ4> определяют координаты рамки: вырЧ1 и вырЧ2
задают верхний левый угол, а вырЧ3 и вырЧ4 - нижний правый. Если
координаты строк (<эвырЧ1> и <эвырЧ3>) одинаковы, то Клиппер
рисует горизонтальную линию. Если одинаковы координаты столбцов
(<эвырЧ2> и <эвырЧ4>), то рисуется вертикальная линия.

DOUBLE: - рисует рамку двойной линией. Если эта опция не указана, то
рамка будет одинарной. @...TO очень похожа на @...BOX с двумя
исключениями. Во-первых, @...BOX позволяет определить символы,
используемые для рисования рамки и, во-вторых, обеспечивает
заполнение рамки символами. Однако, @...TO легче в
использовании, поскольку Вам не надо запоминать необходимые
символы.

Пример: @10,10 CLEAR TO 20,40
@10,10 TO 20,40 DOUBLE

Библиотека: CLIPPER.LIB

См. также: @...BOX,@...CLEAR,ACHOICE(),DBEDIT(),SCROLL()





ACCEPT


Синтаксис: ACCEPT [<эприглашение>] TO <эпеременная>

Вводит строку с клавиатуры в указанную переменную.
<эпеременная> - это имя переменной, куда помещается введенная
строка.
<эприглашение> - символьная строка, высвечиваемая перед вводимой
областью.
ACCEPT помещает введенную с клавиатуры строку во вновь созданную
символьную переменную. Нажатие клавиши "RETURN" подтверждает
ввод и является единственной клавишей, заканчивающей ввод. Если
"RETURN" - это единственная нажатая клавиша, то ACCEPT создает
переменную с нулевым значением ("").

Пример: ACCEPT "Введите значение: " TO var

- 53 -

Библиотека: CLIPPER.LIB

См. также: @...SAY...GET,INPUT,WAIT,INKEY()




APPEND BLANK


Синтаксис: APPEND BLANK

Добавляет новую, пустую запись в конец текущего файла БД и
делает ее текущей записью.

Пример: USE sales
?FIELD(1) && Результат: Salesman
?LASTREC() && Результат: 83
APPEND BLANK
?LASTREC() && Результат: 84
name=FIELD(1)
?EMPTY(&name) && Результат:.T.

Сеть: Когда работа идет в сети, и текущий файл открыт для
коллективного пользования, APPEND BLANK пытается добавить и,
затем, запереть новую запись. Если другой пользователь уже запер
файл БД, или пытался сделать APPEND BLANK в то же самое время,
функция NETERR() вернет истину (.T.). Заметьте, что вновь
добавленная запись остается запертой, пока Вы не запрете другую
запись или же отопрете командой UNLOCK. Добавление записей
командой APPEND BLANK не отменяет FLOCK(), сделанный текущим
пользователем.

Смотрите подробности в главе 10 - "Использование Клиппера в
локальной сети".

Сетевой пример: В этом примере APPEND BLANK добавляет запись, если
NETERR() не возвращает ошибку:
SET EXCLUSIVE OFF
IF NET_USE("Accounts",.F.,5) && успешное USE
APPEND BLANK
IF NETERR()
? "недоступно"
ELSE
<эобработка новой записи>
ENDIF
ENDIF

Библиотека: CLIPPER.LIB

См. также: APPEND FROM,SET CARRY,SET CONFIRM,SET FORMAT



APPEND FROM


- 54 -

Синтаксис: APPEND [<эобл.опр.>][FIELDS<эсписок полей>]FROM
<эфайл>(<эвырС>)[FOR<эусловие>][WHILE<эусловие>][SDF]/
[DELIMITED[WITH BLANK/<эограничитель>/(<эвырС>)]]

Добавляет записи в текущий файл БД из ASCII текстового файла или
из другого файла БД.
<эфайл> - имя файла-источника. Если его тип не указан, то, по
умолчанию, тип(.dbf) и расширения не требуется. Если тип указан,
то расширение предполагается (.txt), если не указано другое.

FIELDS: - Если указана эта опция,то данные добавляются только в
перечисленные поля.

Область определения: - это часть исходного файла БД, откуда
добавлять записи. В Клиппере указание "NEXT " добавляет
первые записей и имеет приоритет перед любыми условиями FOR
и WHILE. Указание "RECORD " добавляет только запись номер
из исходного файла БД в целевой файл БД. По умолчанию, область
определения - все записи (ALL).

Условие: - Опция FOR определяет внутри данной области определения
множество записей, подлежащих добавлению. Опция WHILE определяет
множество записей, отвечающих условию, начиная с первой записи
исходного файла и до тех пор, пока условие верно.

Тип: - Клиппер может импортировать из файлов трех типов: SDF,
DELIMITED и (.dbf).

SDF означает ASCII файл формата системных данных. Каждая запись
- фиксированной длины, заканчивается символами возврата каретки
и перевода строки; метка конца файла - "Ctrl-Z" (1A -
шестнадцатеричное).

DELIMITED: - означает ASCII текстовый файл, в котором поля
разделены запятыми, и символьные поля ограничены двойными
кавычками (по умолчанию). Ограничители не обязательны, и Клиппер
правильно добавляет символьные поля, не охваченные
ограничителями. Поля и записи имеют переменную длину и
заканчиваются возвратом каретки и переводом строки. Метка конца
файла "Ctrl-Z" (шестнадцатеричное 1A).

DELIMITED WITH BLANK означает ASCII текстовый файл, где поля
разделены одним пробелом и символьные поля не охвачены
ограничителями.

DELIMITED WITH <эограничитель> означает ASCII текстовый файл, где
символьные поля охвачены указанным ограничителем.

Записи в исходном файле, помеченные к удалению, добавляются и в
целевом файле уже не помечаются к удалению. Однако, после
установки SET DELETED ON, помеченные записи просто не
добавляются. В отличие от DBASE III PLUS целевое и исходное поля
должны иметь одинаковый тип и название. Если это не так, то при
выполнении команды Вы получите сообщение об ошибке "Type
conflict in REPLACE (Q/A/I)?".


- 55 -
Ширина полей: - Если целевое поле шире, то Клиппер заполняет его
пробелами, если уже, то он обрезает исходные данные.

Пример добавления с использованием списка полей:
USE Sales
APPEND FIELDS Branch,Salesman,Amount;
FROM Branch;
FOR Branch=100

Пример с областью определения:
APPEND RECORD 5 FROM TEMP


Работа в сети: Заметим, что APPEND FROM не требует запирания целевого
файла с помощью FLOCK() или открытия в монопольном режиме (USE
EXCLUSIVE) для правильной работы. Клиппер автоматически
обрабатывает состязания для целевого файла в процессе
дополнений.

Библиотека: CLIPPER.LIB

См. также: COPY,FREAD()




AVERAGE


Синтаксис: AVERAGE [<эобл.опр.>]<эсписок выражений>TO
<эсписок переменных>[FOR<эусловие>][WHILE<эусловие>]

Находит среднее последовательности выражений и записывает
результаты в переменные для указанного диапазона записей в
текущем файле БД.

<эсписок выражений> - список числовых значений, подлежащих
усреднению для каждой обработанной записи.

<эсписок переменных> - указывает переменные, принимающие
результаты. Создается при выполнении команды. Содержимое
существующих одноименных переменных замещается вычисленными
значениями. Этот список должен содержать точно такое же
количество элементов, как и список выражений.

<эобласть определения> - часть текущегог файла БД, подлежащая
усреднению. По умолчанию - это все записи (ALL).

Условие FOR задает множество записей в данной области
определения. Условие WHILE задает множество записей, отвкчающих
условию, начиная с текущей и пока условие верно.

Пример: USE Sales
AVERAGE FIELDS Amount TO avg_amount;
FOR UPPER (Branch)="100"

Библиотека: CLIPPER.LIB

- 56 -

См. также: SUM,TOTAL





CANCEL / QUIT



Синтаксис: CANCEL / QUIT

Прекращает работу программы, закрывает все открытые файлы и
возвращает управление в ДОС. CANCEL или QUIT можно использовать
в любом месте программы для прекращения работы и возврата в ДОС.
Выполнение команды RETURN в процедуре наивысшего уровня
производит те же действия.

Библиотека: CLIPPER.LIB

См. также: QUIT,RETURN




CLEAR


Синтаксис: CLEAR

Очищает экран, очищает ждущие обработки GETы и ставит курсор в
исходное положение (строка 0, столбец 0).

Если Вы редактируете GETы, не ставьте CLEAR в текст процедур,
вызываемых через SET KEY либо VALID, поскольку она удалит все
еще не обработанные GETы. Для очистки экрана без порчи GETов
используйте @0,0 CLEAR.


Библиотека: CLIPPER.LIB

См. также: @...CLEAR,CLEAR GETS




CLEAR ALL


Синтаксис: CLEAR ALL

Закрывает все открытые файлы БД (и связанные с ними файлы
индексов, форматов и мемо), удаляет все переменные и переходит в
рабочую область No 1.

Библиотека: CLIPPER.LIB

- 57 -

См. также: CLEAR MEMORY,CLOSE,RELEASE

CLEAR GETS


Синтаксис: CLEAR GETS

Удаляет все необработанные GETы.


Библиотека: CLIPPER.LIB

См. также: @...CLEAR,CLEAR



CLEAR MEMORY


Синтаксис: CLEAR MEMORY

Удаляет все глобальные и локальные переменные. Используется,
когда Вы хотите удалить как те, так и другие переменные, в
отличие от RELEASE ALL, которая удаляет только локальные
переменные, определенные в текущей процедуре.

Пример: PUBLIC var
var=SPACE(10)
?TYPE("var") && результат: C
CLEAR MEMORY
?TYPE("var") && результат: U

Библиотека: CLIPPER.LIB

См. также: CLEAR ALL,RELEASE ALL



CLEAR TYPEAHEAD


Синтаксис: CLEAR TYPEAHEAD

Опустошает буфер клавиатуры. Полезна в процедурах интерфейса с
пользователем, для того, чтобы гарантировать, что принятые из
буфера клавиатуры нажатия клавиш относятся именно к текущей
деятельности, а не остались от прошлых диалогов. Особенно это
относится к собственным функциям, используемым в ACHOICE() и
DBEDIT().


Библиотека: CLIPPER.LIB

См. также: KEYBOARD,SET TYPEAHEAD,ACHOICE(),DBEDIT(),
LASTKEY(),NEXTKEY()


- 58 -

CLOSE


Синтаксис: CLOSE ALL/ALTERNATE/DATABASES/FORMAT/INDEX

Закрывает указанные классы файлов.

ALL: - закрывает все файлы БД, альтернативные и индексные во
всех рабочих областях. Кроме того, выключает все активные
фильтры, отношения и форматы.

ALTERNATE: - закрывает открытый текущий альтернативный файл, но
не удаляет имя альтернативного файла, установленное командой SET
ALTERNATE TO <эимя файла>. Команда SET ALTERNATE TO без аргумента
также закрывает альтернативный файл.

DATABASES: - закрывает все открытые файлы БД и связанные с ними
индексы во всех рабочих областях и выключает все активные
фильтры. На активный формат никакого влияния не оказывает.

FORMAT: - выключает текущий формат, выполняя те же действия, что
и команда SET FORMAT TO без аргумента.

INDEX: - закрывает все индексные файлы, открытые в текущей
рабочей области.

Многие другие команды Клиппера также закрывают файлы. Среди них :


QUIT
CANCEL
RETURN (из процедуры высшего уровня)
CLEAR ALL
USE (без аргумента)

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

- "Q" (QUIT) в ответ на предложение (Q/A/I);

- "N" в ответ на вопрос "Continue?" (продолжить?);

При этом закрываются все файлы и происходит возврат в ДОС.


Библиотека: CLIPPER.LIB

См. также: CANCEL, CLEAR ALL, CLEAR MEMORY, QUIT, RETURN, SET
ALTERNATE TO, USE

COMMIT


Синтаксис: COMMIT


- 59 -
Выполняет запись на диск для всех рабочих областей. COMMIT
"выталкивает" все буферы Клиппера в ДОС не дожидаясь их
выполнения и, затем, записывает их на диск.
Требует использования ДОС 3.3 и выше.

Пример: CLEAR
USE Dbf
FOR i=1 to 10
APPEND BLANK
REPLACE Fld1 with i
COMMIT && запись буфера на диск
NEXT

Библиотека: CLIPPER.LIB

См. также: SKIP


CONTINUE

Синтаксис: CONTINUE

Продолжает поиск, начатый по команде LOCATE, в текущей рабочей
области.

CONTINUE ищет, начиная с текущей записи, следующую запись,
удовлетворяющую условию последней выполняемой в данной рабочей
области команды LOCATE. Поиск прекращаетя, когда найдена искомая
запись или достигнут конец области поиска, определенной в
LOCATE.
Если запись найдена, то она становится текущей и функция FOUND()
возвращает истину (.T.). Если она не найдена, то FOUND() всегда
возвращает ложь (.F.), а положение указателя текущей записи
зависит от указания области определения в LOCATE.
Каждая рабочая область может иметь такое активное условие
поиска. В Клиппере условие для LOCATE остается в силе, пока не
будет указано новое. Никакие другие команды не снимают это
условие.

Пример: USE Sales
? LASTREC() && результат : 6
LOCATE FOR Salesman = "1002"
? FOUND(), RECNO(), EOF() && .T. 3 .F.
CONTINUE
? FOUND(), RECNO(), EOF() && .T. 4 .F.
CONTINUE
? FOUND(), RECNO(), EOF() && .F. 6 .T.
Библиотека: CLIPPER.LIB

См. также: LOCATE,FOUND()


COPY


Синтаксис: COPY TO <эфайл>/(<эвырС1>)[<эобл.опр.>]
[FIELDS<эсписок полей>][FOR<эусловие>]

- 60 -
[WHILE<эусловие>][SDF/DELIMITED/
DELIMITED WITH<эограничитель>/(<эвырС2>)]

Копирует весь или часть текущего файла БД в новый файл.

<эфайл> - имя нового файла. Если тип файла не указан, то, по
умолчанию, тип будет (.dbf) и добавлять расширение не нужно.
Если тип создаваемого файла указан,то расширение предполагается
(.txt), если не указано иначе.

FIELDS: - определяет список полей, подлежащих копированию в
целевой файл. По умолчанию все поля.

<эобл.опр.> - часть текущего файла, из которой нужно копировать.
По умолчанию весь файл (ALL).

<эусловие> - в опции FOR определяет множество записей, в пределах
области определения, подлежащих копированию. - в опции WHILE
определяет множество записей, отвечающих условию, начиная с
текущей и пока условие выполняется.

SDF: - указывает, что тип выходного файла - ASCII-файл
системного формата данных. Записи фиксированной длины, каждая
отделена парой символов возврат каретки/перевод строки. Поля -
фиксированной длины и не имеют разделителей. Символьные поля
дополняются замыкающими пробелами, поля даты записываются в
форме "ггггммдд" и логические поля в форме T/F. Признак конца
файла - Ctrl-Z (шестнадцатеричное 1A).

DELIMITED: - определяет тип выходного файла как ASCII-файл с
ограничителями. Записи переменной длины, каждая отделена парой
возврат каретки/перевод строки. Поля переменной длины и
разделены запятыми. Символьные поля охвачены ограничителями (по
умолчанию - двойными кавычками, если Вы не указали другой
символ, используя опцию WITH). Начальные и замыкающие пробелы в
числовых и символьных полях обрезаются, поля даты записываются в
форме "ггггммдд" и логические поля в форме T/F. Признак конца
файла - Ctrl-Z (шестнадцатеричное 1A).

Примечание: Опции типов DELIMITED WITH BLANK,DIF,SYLK и WKS
с ключевым словом TYPE не поддержаны (в отличие
от DBASE).
Копируются все записи, содержащиеся в активном
файле БД и соответствующие области определения
и условиям FOR и WHILE.

Пример: Демонстрация копирования в другой (.dbf) файл.
USE Sales
?LASTREC() && результат: 84
COPY TO Temp
USE Temp
?LASTREC() && результат: 84

В следующих примерах используется файл Testdata.dbf, имеющий
четыре поля, по одному на каждый тип данных. Char, Num, Date,
Logical. Файл содержит следующие данные:


- 61 -
USE Testdata
?Char,Num,Date,Logical

Результат:
Character 12.00 08/01/87 .T.

Пример копирования в SDF-файл:
COPY NEXT 1 TO Temp SDF
TYPE Temp.txt
Результат:
Character 12.0019870801T

Пример копирования в файл с ограничителями:
COPY NEXT 1 TO Temp DELIMITED
TYPE Temp.txt
Результат:
"Character",12.00,19870801,T

Пример копирования в файл с нестандартными ограничителями:
COPY NEXT 1 TO Temp DELIMITED WITH '
TYPE Temp.txt
Результат:
'Character',12.00,19870801,T

Работа в сети: Когда Вы копируете при работе в сети, Клиппер
открывает файл целевой БД в монопольном режиме.

Библиотека: CLIPPER.LIB

См. также: APPEND FROM,COPY FILE,COPY STRUCTURE,SET DELETED


COPY FILE


Синтаксис: COPY FILE <эфайл1>.<эрасш.>/(<эвырС2>)
TO <эфайл2>.<эрасш.>/(<эвырС2>)

<эфайл1> - имя файла-источника.

<эфайл2> - имя целевого файла.

Расширения обязательны в обоих случаях.

Команда COPY FILE копирует файлы любого типа с текущего диска и
директория Клиппера.

Пример: COPY FILE Test.prg TO Real.prg
?FILE("Real.prg") && результат .T.


Библиотека: CLIPPER.LIB

См. также: CLOSE,COPY,SET DEFAULT,USE




- 62 -
COPY STRUCTURE


Синтаксис: COPY STRUCTURE TO <эфайл>/(<эвырС>)
[FIELDS<эсписок полей>]

Создает пустой файл БД, с определениями полей, взятыми из
текущего файла БД.

<эфайл> - имя целевого файла. Расширение по умолчанию - .dbf.

FIELDS: <эсписок полей> - это множество полей, подлежащих
копированию в новую структуру, в перечисленном порядке. По
умолчанию, копируются все поля.

Пример: USE Sales
?LASTREC() && результат: 84
*
COPY STRUCTURE FIELDS Branch,Salesman TO Temp
USE Temp
?LASTREC() && результат: 0


Библиотека: CLIPPER.LIB

См. также: COPY STRUCTURE EXTENDED,CREATE


COPY STRUCTURE EXTENDED


Синтаксис: COPY TO <эфайл>/(<эвырС>) STRUCTURE EXTENDED
[FIELDS <эсписок полей>]

Создает файл БД, чьим содержимым являются определения полей
текущего файла.

<эфайл> - имя файла расширенной структуры.

FIELDS: <эсписок полей> - одно или больше полей в текущем файле
БД, Чьи определения появятся, в виде записей, в новом файле БД,
в перечисленном здесь порядке.

Команда COPY STRUCTURE EXTENDED создает файл БД с четырьмя
полями: Field_name, Field_type, Field_len и Field_dec. В
результате, созданный файл содержит по одной записи на каждое
поле исходного файла (или на каждое поле, перечисленное в
списке).

При использовании в прикладных программах это позволяет Вам
создавать или модифицировать структуру файла БД программным
путем. Чтобы создать из этого файла расширенной структуры новый
файл БД, используйте команду CREATE FROM. Если Вам нужен только
файл расширенной структуры, используйте команду CREATE.

Пример: USE Sales
COPY STRUCTURE EXTENDED TO Struc

- 63 -
USE Struc
LIST Field_name,Field_type,Field_len,Field_dec

Результат:

1 BRANCH C 3 0
2 SALESMAN C 4 0
3 CUSTOMER C 4 0
4 PRODUCT C 25 0
5 AMOUNT N 8 2

Библиотека: CLIPPER.LIB

См. также: CREATE,CREATE FROM,FIELD(),TYPE()




COUNT


Синтаксис: COUNT [<эобл.опр.>][ FOR <эусловие>]
[ WHILE <эусловие>] TO <эпеременная>

Подсчитывает количество записей в текущей рабочей области,
удовлетворяющих области определения и условиям.

<эпеременная> - переменная в памяти, которой присваивается
результат COUNT. Если эта переменная не существует, или она
нечислового типа, то COUNT создает ее, как числовую.

<эобл.опр.> - часть текущего файла БД, внутри которой нужно
подсчитать записи. По умолчанию во всем файле (ALL).

<эусловие> - опция FOR указывает условное множество записей,
подлежащих подсчету внутри данной области определения. Опция
WHILE указывает множество записей, отвечающих условию, начиная с
текущей и пока условие выполняется.

Пример: USE Sales
?LASTREC() && результат: 84
COUNT FOR Branch="100" TO Branch_cnt
?Branch_cnt && результат: 4

Библиотека: CLIPPER.LIB

См. также:AVERAGE,SUM,TOTAL,LASTREC()



CREATE

Синтаксис: CREATE <эфайл>/(<эвырС>)

Генерирует файл пустой расширенной структуры базы данных.
<эфайл>- имя файла пустой расширенной структуры. Подобно COPY
STRUCTURE EXTENDED, CREATE порождает файл с четырьмя следующими

- 64 -
полями:Field_name(имя поля), Field_type (тип поля),
Field_len(ДЛИНА ПОЛЯ), Field_dec(количество знаков после
запятой). В отличие от COPY STRUCTURE EXTENDED, CREATE порождает
пустой файл базы данных и не требует присутствия другого файла
базы данных.

Библиотека:CLIPPER.LIB

См.также : CREATE FROM, COPY CTRUCTURE EXTENDED


CREATE FROME

Синтаксис : CREATE <эфайл1>/(<эвырС1>) FROME <эфайл2>/(<эвырС2>)

Создает новый файл базы данных на основании файла структуры.
<эфайл1> - имя нового файла базы данных,сгенерированного на
основании структурного файла<эфайл2>.
<эфайл2> - имя структурного файла, используемого для определения
структуры нового файла базы данных.
CREATE FROME порождает новый файл базы данных со структурой
полей, определенной содержанием структурного файла. Архитектура
структурного файлавыглядит следующим образом:

Поле Имя Тип Длина Кол-во знаков после запятой
1 Field_name Символ 10
2 Field_type Символ 1
3 Field_len Число 3 0
4 Field_dec Число 3 0

Можно иметь любое количество полей внутри структурного файла для
описания атрибутов полей. Однако, при выполнении CREATE FROME,
Клиппер генерирует новый файл базы данных, используя только
требуемые (описанные выше) поля. Все другие поля в структурном
файле будут проигнорированы.

Существует возможность создать символьное поле диной более 999
символов. Для этого необходимо определить Field_dec равным INT()
от желаемой длины, деленной на 256, а Field_len равным остатку
от этого деления.

Примеры:

CREATE New FROME Struc
USE New
?LASTREC( ) && Результат: 0

Следующий пример показывает возможный вид CREATE - процедуры
интерактивного создания структуры нового файла базы данных:

CREATE New_stru
USE New_stru
more_flds=.T.
* Установка атрибутов полей нового файла базы данных
DO WHILE more_flds
APPEND BLANK
@5,0 SAY "Имя поля:" GET Field_name

- 65 -
@6,0 SAY "Тип поля:" GET Field_type
@7,0 SAY "Длина поля:" GET Field_len
@8,0 SAY "Знаки после зпт:" GET Field_dec
READ
more_flds=(.NOT.EMPLY(Field_name))
ENDDO
* Удаление пустых записей
DELETE ALL FOR EMPTY (Field_name)
PACK
USE
* Генерация нового файла данных
CREATE Newfile From New_stru
ERASE New_stru.dbf

Генерация поля из 4000 символов:

Fiel_dec=INT(4000/256)=15
Field_len=4000%256=160
REPLASE, Field_name WHITH"Note";
Field_type WITH "c",;
Field_len WITH 160,;
Field_dec With 15

Библиотека: CLIPPER.LIB

См.также: COPY STRUCTURE EXTENDED, CREATE


DECLARE

Сиснтаксис: DECLARE<эмассив1>[<эвырЧ1>][,<эмассив2>[<эвырЧ2>]]...

Создает один или более массивов переменных.
<эмассив> - имя создаваемого массива. Можно создать несколько
массивов, используя один DECLARE оператор.
<эвырЧ> - количество элементов массива (max: до 2048). При
объявлении массива с <эвырЧ> меньше 1, этот параметр
приравнивается к 1, а в случае объявления его больше 2048, он
будет равен 2048.

Внимание: квадратные скобки вокруг <эвырЧ> являются необходимой
частью сиснтаксиса команды и в этом случае не обозначают
необязательный аргумент.

DECLARE позволяет создать одномерный массив. Сгенерированный
массив занимет одну единицу в списке локальных переменных. В
отличие от переменных массивы и их элементы не могут быть
обработаны при помощи SAVE или объявлены PUBLIC (глобальными).
Для назначения определенной величины элементу массива
используется оператор присвоения (=) или команда STORE. Для
присвоения определенно го значения всем элементам массива
следует использовать AFILL( ).

Для того чтобы обратиться к какому-нибудь элементу массива
необходимо использовать индексное выражение, указывающее на
позицию элемента в массиве.
Для определения количества элементов в массиве удобно

- 66 -
использовать LEN( ) с указанием имени массива в качестве
аргумента функции. Элементы внутри массива могут быть различных
типов и в этом смысле правила их использования совпадают с
правилами для обычных переменных. TYPE( ) возвращает "А"
(массив) всякий раз, когда аргументом является массив. Чтобы
определить тип определенного элемента массива, необходимо
присвоить значение этого элемента обычной переменной и лишь
затем использовать TYPE( ).

Массивы не имеют ограничений по использованию в
макро-переменных. Существует только одно ограничение: скобки не
могут быть использованы в макро-переменных при употреблении
DECLARE (см.пример). Массив и элементы маасива могут быть
использованы как пересылаемые параметры в Клиппер-процедурах,
пользовательских функциях и внешних процедурах, использующих
Расширенную систему (Extend System) (см. гл.11, Система
расширения). Массивы пересылаются в качестве ссылок (by
reference), элементы массивов пересылаются как значения (by
value). Нельзя, однако, пересылать весь массив во внешнюю
процедуру, используя команду CALL. В этом случае можно переслать
элементы массива по одному и как значения (by value).

Примеры:
Следующий пример иллюстрирует процесс создания массива,
присвоения его элементам определенных значений и индикации
последних:

DECLARE array[s]
array[1]="HELLO"
array[2]=1234
?array[1] &&Результат: HELLO
?array[2] &&Результат: 1234

Следующий пример демонстрирует возможность применения массивов
совместно с макро-переменными:

name = "array"
number = 5
name_len = "array[1]"
*
* это правильное использование
DECLARE &name[number] &&Создание массива из 5 элементов
&name_len = 100 &&Элементу 1 присваивается значение 100
&name[3]="abs" &&Элементу 3 присваивается значение "abs"
*
* Это неправильное использование
DECLARE &name_len &&Cкобки не м.б.внутри макро-переменной

Библиотека: CLIPPER.LIB

См. также: ADEL( ), ADIR( ), AFILL( ),ASCAN( ), ASORT( )



DELETE



- 67 -
Синтаксис: DELETE[<эобл.опр.>][FOR<эусловие>][WHILE<эусловие>]

Помечает записи в текущем файле данных, предназначенные для
удаления.
<эобл.опр.> - обозначает часть файла данных для удаления. Если
эта часть не указана, то DELETE действует только по отношению к
текущей записи.
Если <эусловие> указано, то по умолчания область определения -
все записи файла . DELETE помечает записи таким образом, что они
могут быть потом отфильтрованы при помощи SET DELETED ON,
запрошены DELETED( ) или физически удалены из файла при помощи
PACK. К тому же такие команды индикации как LIST и DISPLAY
отмечают предназначенные к удалению записи символом "*". Уже
помеченные записи можно восстановить в правах с помощью RECALL.

Если необходимо удалить все записи из файла данных, следует
использовать ZAP вместо DELETE ALL и PACK.

При использовании в сетях команда DELETE требует, чтобы текущая
запись была "заперта" при помощи RLOCK( ) в случае, если
удаляется единичная запись. Если необходимо удалить несколько
записей, текущий файл данных должен быть "заперт" при помощи
FLOCK( ) или открыт (USE) в монопольном режиме - EXCLUSIVE

Библиотека: CLIPPER.LIB

См. также: PACK,RECALL,SET DELETE, ZAP, DELETED( ), EMPTY( )


DIR

Синтаксис: DIR[<эдисковод>:][<эпуть>\][<эшаблон>]

Показывает список файлов из указанного каталога на диске.
<эшаблон> - стандартный указатель совпадений (* или ?). Если он
используется , то будут выданы все совпадающие файлы, если не
используется - выдаются только файлы данных.
DIR осуществляет вывод в двух различных форматах, в зависимости
от того был ли использован <эшаблон>. Если нет, то выводится
стандартный список файлов указанного директория, включающий в
себя имя файла, дату последнего применения и количество записей.
Если же <эшаблон> используется, список включает в себя имя файла,
расширение, количество байт и дату внесения последнего
изменения. В ситуациях, когда необходимо выдать пользователю
информацию об имеющихся файлах, удобно воспользоваться ADIR()
вместо DIR. ADIR() позволяет поместить атрибут файлов в массивы,
что удобнее для дальнейшего их использования.

Библиотека: CLIPPER.LIB

См. также : ADIR( )


DISPLAY

Синтаксис: DISPLAY [OFF][<эобл.опр.>] <эсписок выражений>
[FOR<эусловие>] [WHILE <эусловие>]

- 68 -
[TO PRINT][TO FILE<эфайл>/(вырС)]

Показывает одно или несколько выражений для каждой обработанной
записи.
- список величин индицируемых для каждой записи.
Опции :
<эобл.опр.>: обозначает часть текущего файла данных. По умолчанию
- текущая запись. Если используется <эусловие>, то <эобл.опр.>
принимает значения ALL - все.
<эусловие>: FOR устанавливает условие для индикации определенных
записей внутри выбранного <эобл.опр.>. WHILE предоставляет
возможность производить вывод пока верно <эусловие> WHILE.
OFF : подавляет вывод количества записей.
PRINT : вызывает дублирование вывода на принтер.
FILE: TO FILE вызывает пересылку информации в файл <эфайл>.
Расширение по умолчанию .txt.

DISPLAY вызывает индикацию <эсписка выражений> в табулированном
формате, где каждая колонка отделена от другой пробелом.
Заголовок не печатается, пауз во время выводов не предусмотрено.
DISPLAY аналогичен LIST за исключением того, что в LIST по
умолчанию <эобл.опр.> принимает значение NEXT 1, а не ALL.

Примеры:

USE Sales
DISPLAY DATE( ), TIME( ), Brauch
DISPLAY Brauch,Salesman FOR Amount>500 TO PRINT

*Для просмотра удобно включить INKEY( ) в условие FOR:
DISPLAY Brouch, Amount FOR INKEY( ) <>27


Библиотека: CLIPPER, LIB

См.также: LIST


DO


Синтаксис: DO <эпроцедура> [WITH<эсписок параметров>]

Цель: выполнение процедуры.
<эпроцедура> - имя процедуры. Это может быть процедура на
Клиппере, Си или Ассемблере.
Необязательное условие WITH <эсписок параметров> позволяет
переслать в процедуру список (до 128) параметров. Параметрами
могут быть переменные или выражения. Переменные могут быть здесь
использованы в качестве ссылок или значений.

Для пересылки параметров необходимо в вызываемой процедуре иметь
оператор PARAMETERS со списком переменных, принимающих
пересылаемые ссылки или значения. Если пересылаемый параметр
(выражение, поле или переменная) заключены в скобки, то в
вызываемую процедуру передается только его значение. В случае
же, если параметр (переменная) не заключен в скобки, он

- 69 -
перемылается в качестве ссылки и любое изменение
соответствующего ему параметра в процедуре отразится на его
значении в вызывающей программе.

Следует отметить, что поля могут быть пересланы только как
значения. (См. PARAMETRS для более детального ознакомления).





Назад


Новые поступления

Украинский Зеленый Портал Рефератик создан с целью поуляризации украинской культуры и облегчения поиска учебных материалов для украинских школьников, а также студентов и аспирантов украинских ВУЗов. Все материалы, опубликованные на сайте взяты из открытых источников. Однако, следует помнить, что тексты, опубликованных работ в первую очередь принадлежат их авторам. Используя материалы, размещенные на сайте, пожалуйста, давайте ссылку на название публикации и ее автора.

281311062 © il.lusion,2007г.
Карта сайта