|
Пример.
? SUBSTR('база исходных данных *,6,8)
* Выводит на экран ''исходных''
12.2.2.4. Удаление пробелов из символьного выражения
LTRIM(<Bup. О) | RTRIM(<Bbip. О) | АШШМ(<выр. О)
Функции удаляют пробелы от выражения <выр.О слева, справа, слева и справа одновременно соответственно.
12.2.3. Функции преобразования
12.2.3.1. Конвертация (кодирование) символов
CHRTRAN(<Bbip. С1>, <выр. С2>, <вьф. С3>)
Кодируются символы <выр. С1> по следующему правилу; Если в <выр. С1> встречается символ, равный первому символу из <выр. С2>, то он заменяется в <выр. С1> на первый символ из <выр. С3>. Если в <выр. С1> встречается символ, равный второму символу из <выр. С2>, то он заменяется на второй символ из <выр.СЗ> и т. д.
То есть <выр. С2> используется как шаблон для поиска символов из <выр. С1>, а символы в <выр. С1> заменяются на coorj ветствуюшие из <выр. С3>.
Если <выр. С3> имеет меньше знаков, чем <выр. С2>, то лишние знаки из <выр. С2> переводятся в знаки нулевой длины (теряются). Если <выр. С3> имеет больше знаков, чем <выр. С2>, то дополнительные знаки игнорируются.
Примеры:
? CHRTRAN(''abedef'',''асе'',''xyz'')
£с£с Выводит на экран xbydzf
S=''абвгдежзийклмнопрстуфхцчшгьыьэюя''
Р="АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЬ1ЬЭЮЯ' '
? CHRTRAN('База данных',S,Р)
&& Выводит на экран БАЗА ДАННЫЙ
12.2.3.2. Повторение выражения несколько раз
REPLICATE(<Bup. О, <выр. N>)
Повторяет <выр. О <выр. N> раз.
Пример.
? REPLICATE('Привет ', 3)
&& Выводит на экран Привет Привет Призер
12.2.3.3. Формирование строки пробелов
SPACE(<Bbip. N>)
Пробел повторяется <выр. N> раз.
12.2.3.4. Редактирование (замена) части строки
STUFF(<Bbip. С1>, <нач. позицня>,<число сичволов>, <выр. С2>)
В строке <выр. С1> заменяется <число символов>, начиная с символа <нач. позиция>, на символы строки <выр. С2>.
Если <число символов>=0, то <выр. С2> вставляется в <выр. С1> в позицию <нач. позиция>, не затирая (отодвигая) часть строки <выр. С1>.
Если <выр. С2> пустая строка, то из строки <выр. С1> удаляется <чнсло символов>, начиная с <нач. позиция> с одновременным сжатием <выр. С1>.
Пример.
х='база исходных данных'
? STUFF(х,6,9, 'конечных') &.& Выводит на экран» '' база конечных данных''
? STUFF(х.6,9, ") && Выводит на экран
* ''база данных''
12.2.3.5. Поиск и замена часта строки
STRTRAN(<Bbip. С1>, <выр. С2>, <выр. С3>, <вир. Nl>, <выр. N2>)
В строке <выр. С1>, начиная с позиции <выр. Nl>, ищется подстрока <выр. С2>. Если <выр. С2> найдено в строке <выр. С1>, то оно заменяется на <выр. С3>. Процесс поиска замены продолжается до позиции <выр. N2>.
Если <выр. С3> отсутствует, то все найденные <выр. С2> будут превращены в пустую строку. Если не указано <выр. Nl>, то поиск начинается с первой позиции. Если не указано <выр. N2>, то поиск продолжается до конца строки <выр. С1>.
Пример.
? STRTRAN('база данных','а','А')
&& Выводит на экран ''бАзА дАнных*'
? STRTRAN('база данных','н')
&& Выводит на экран ''база даых''
’ STRTRAN('база данных','а','*',2)
&& Выводит на экран ''баз* д*нных''
12.2.3.6. Задание шаблона вывода данных
^AlSSFORM(<Bup.>, <шаблон>)
Задает шаблон аналогично @...SAY.
12.2.3.7. Вставка подстроки в центр|слева|справа строки PADC | PADL |PADR(<Bbip. С1>, <выр. N>, <выр. С2>) <Вьф. С1> вставляется соответственно в центр/слева/справа строки, составленной из <выр. С2>, повторенного <выр. N> раз. Если <выр. С2> опущено, то используются пробелы. Если <выр. С1> длиннее, чем <выр. N>, то <выр. С1> усекается справа до <выр. N>, т. е. длина строки не превышает <выр. N>. Пример. ? РАЭС1'Таблица',20,) && Выводит на экран ***’ |
SET KEMOWIDTH TO 20 ? ATLINE('AB', peri) SET KEMOWIDTH TO 10 ? ATLINE('AB', peri) |
‘'Таблица* |
12.2.4. Функции обработки мемо-полей |
Пример. ? TRANSFORM(234..83, ? TRANSFORM(234.183,? TRANSFORM(234.183, |
&& Выводит на экран 234.1 && Выводит на экран 234.18 && Выводит на экран 234.1*3 |
П ример 1. Пусть дана таблица Employee, которая содержит поля: pjrsi_Name — символьное, Last Name — символьное, Notes — доле типа Memo. USE employee&St Открытие таблицы Employee CLEAR STORE 'Японец' TO Per_Find && Символы заносятся с учетом регистра. LOCATE FOR ATLINE(Per_Find, notes)!= 0? FirstJName?? Last_Name ? MLINE(notes, ATLINE(Per_Find, notes)) П p и м e p 2. Работа со строками. STORE '1234567890ABCDEFGHIJ' TO Deri |
&& Установлена длина строки 20 симзолов && Выводит на экран 1 && Установлена длина строки 10 симзолов && Выводит на экран 2 |
Employee |
С мемо-полями могут работать ранее рассмотренные функш LEN(), АТ(), АТС(), SUBSTR(). Только с мемо-полями работают следующие функции.
ии:
12.2.4.1. Определение первого вхождения подстроки
ATLINE| ATCLINE(<Bbip. С1>,<мемо-поле>)
Ищет первое вхождение <выр. С1> в <мемо-поле> и возвращает номер строки, где было найдено <выр. С1>. Если <выр. СР не найдено, то возвращается 0. •1 _
ATCLINE не различает строчные и прописные буквы, а фунК- J ция ATLINE — различает. Далее найденная строка может обрабатываться другими функциями.
12.2.4.2. Определение последнего вхождения подстроки
RATLI\E{<Bbip. С1>, <мемо-поле>)
Определяет место последнего вхождения <выр. С1> в <мемо- Поле> и возвращает номер строки мемо-поля.
Пример.
employee Открытие таблицы
STORE 'Японец' ТО per STORE MLINE(notes, RATLINE(per, notes));
TO Per_FileLine ? per_FileLine
12.2.4.3. Выбор строки по ее номеру
MLINE(<MCMo-nwie>, <»чр. N>)
Возвращает строку с номером <выр. N> Если <выр. N> больше числа строк, то возвращается пустая строка.
12.2.4А Определение количества строк в мемо-поле
MEMLINES(<4cyo-ncuie>)
Возвращает число строк и мемо-поле.
Длина строки определяется командой SET MEMOWIDTII (но умолчанию — 50) При разбиении текста мемо-поля функция ями MLINE0 и MEMLINES0 на строки учитывается и уже имеющееся разбиение, сделанное с помощью Enter. Фиксация нажатия клавиши Enter и обозначается CHR(13).
12.2.5. Функции конвертирования и распознавания букв
12.2.5.1. Определение начала слова
ISALPHA(<BbipCl>)
Если <вырС1> начинается с буквы, то возвращается значение «истина» (.Т.).
Пример.
CLOSE ALL
SET DEFAULT TO E:\Prim_bd
USE Catalog IN 2 INDEX Catalog ALIAS Cat ORDER;
TAG Book SET TALK OFF CLEAR SELE Cat
.Т. |
DISPLAY Name_bOok
? IS ALPHA (Name_Jx>ok) && Выводит на экран
DISPLAY Price
? ISALPHA(CHR<Price)) && Выводит на экран
12.2.5.2. Определение строчной (малой) буквы
[SLOWER(<iwp. О)
Если слово <выр. О начинается с малой буквы, то возвращается значение «истина».
Пример.
CLEAR
? ISLOWER('привет') UU Выводит на экран.Т.
? ISLOWER('Привет') && Выводит на экран.F.
12.2.5.3. Определение нулевого значения
ISNULL(<«bip.>)
Функция возвращает значение «истина» (Т.), если значение выражения <выр.> равно нулю
12.2.5.4. Определение прописной (большой) буквы ISUPPER(<*up. О)
Если <выр. О начинается с большой буквы, то возвращается значение «истина» (.Т.).
Пример.
CLEAR
? ISUPPER('Привет') && Выводит на экран.Т.
? ISUPPER('привет') Ьй Выводит на экран.F.
12.2.5.4. Преобразование букв в строчные
1^WER(<выр.О)
Преобразует все буквы, содержащиеся в <выр.О, в строчные (малые).
12.2.5.5. Преобразование букв в прописные
рЙОРЕД(<*кф.О)
• Преобразует буквы, содержащиеся в <выр.О, следующим °бразом: первая буква — прописная (большая), остальные — СтР°чные (малые).
12.2.5.6. Преобразование букв в прописные
иРРЕЩ<вьф.О>
Преобразует все буквы, содержащиеся в <выр.О, в прописные (большие).
12.2.6. Функции работы с датами
12.2.6.1. Преобразование даты из символьной формы в форму дать
СТОЩ<выр. О)
Преобразует <выр. О в американский тип даты (ме- сяц/дснь/год, если не установлен другой тип командой SET DATE. <выр. С> должно быть в диапазоне: 4(1/1/1000».. «12/31/9999*. Функция используется для создания переменных типа дата.
Пример.
CLEAR
STORE DATE{) ТО tek_date? 'Техушая дата', tek_date
STORE СТОО('12/25/1999') ТО pr_date? pr_date
STORE STR{~ek_date - pr_date, 4) TO kol_day? _<ol_day
? 'Количество дней ', kol_cay, 'между текущей '+; 'датой и 12/25/1999'
12.2.6.2. День недели в символьной форме CDOW(<Bwp. D>)
Функция возвращает день недели в символьной форме.
12.2.6.3. Имя месяца в символьной форме
СМ(ЖТН(<выр. D>)
Функция возвращает имя месяца в символьной форме.
12.2.6.4. Системная дата DATEO
функция возвращает текущую системную дату
12.2.6.5 Месяц в числовой форме 1)ЛУ(<выр. D>)
функция возвращает день месяца указанной даты в числовой форме
12.2.6.6. Преобразование формата даты в символьный формат
DMY(<Bbip. D>)
Возвращает в виде строки (по английски) последовательно: день, месяц и год.
Если была дана команда SET CENTURY OFF, то ДД МЕСЯЦ ГГ Если была дана команда S ЕТ CENTURY ON, то ДД МЕСЯЦ ГИТ
Пример.
CLEAR
SET CENTURY OFF? DMY(DATE())
£t£t Выводит на экран текущую дату 12 June 01 SET CENTURY ON DMY(DATEO)
b£c Выводит на экран текущую дату 12 June 2001
12.2.6.7. Определение порядкового номера дня недели бО\У(<Выр. Ц>)
Функция возвращает порядковый номер дня недели.
12.2.6.8. Преобразование типа дата в строку символов бТОС(<аир. D>)
Функция возвращает указанную дату в виде символьной ^оки
12.2.6.9. Определение новой даты
СОМО!ЧТН(<выр. D>, <выр. N>)
Возвращает дату, которая отстоит от <вьф. D> на <выр. N> месяцев. Если <выр. N> положительно, то определяется будущ-- дата. Если <вьф. N> отрицательно — прошедшая. Если такой даты не существует, то возвращается дата, соответствующая последнему дню вычисленного месяца.
Пример.
SET CENTURY ON STORE DATE О TO peri CLEAR
? peri Sc& Текущая дата 12 июня 2001 (06/12/2001)
? GOMONTH(peri, 2) && Выводит на экран 08/12/200Ь? GOMONTH(peri, -2)&& Выводит ча экран 04/12/2001
12.2.6.10. Определение номера месяца
MONTH(<Bbip. D>)
Функция возвращает порядковый номер месяца указанн^ даты.
12.2.6.11. Определение номера года
YEAR(<Bbip. D>)
Функция возвращает номер года.
12.2.7. Функции преобразования типов данных
12.2.7.1. Определение кода первого символа
ASC(<Bbip. О)
Возвращает ASCII-код первого символа из <выр. О.
Пример.
дТОКЗ 'ABCDEFGHIJ' ТО peri && 10 символов
clear
poR i = 1 ТО 10
? SUBSTR(perl, i, 1) && Выводит на экран
* символ
? > ASC(SU3STR(perl, i)) && Выводит на экран
* ASCII код символа ENDFOR
12.2.7.2. Преобразование числа в символ
СНИ(<выр. N>)
Преобразует <выр. N>, где N — целое число в диапазоне I...255, в соответствующий символ из таблицы ASCII. Функции ASC0 и CHR() обратны друг другу. 112].
Пример.
CLEAR
FOR i = 65 ТО 75
? i && Выводит на экран ASCII код
символа
?? ' ' + CHR(i) && В текущую строку добавляет
символ
ENDFOR
12.2.7.3. Преобразование числа в строку символов
sTR(<Bup. Nl> [, <выр. N2> [, <выр. N3> ] J)
Функция преобразует числовое выражение в строку символов. <выр. Nl> исходное числовое значение, <выр. N2> общая возвращаемой строки символов, <выр. N3> определяет количество символов в строке для обозначения дробной части Числа. Если <выр. N2> определяет короткую строку и не хватает количества символов для отображения числа, то функция возвращает серию звездочек.
12.2J.4. Преобразование символьного типа в числовой тип VAL(<>up. С1>)
Функция преобразует число, записанное символами, в числовой тип.
12.2.7.5. Преобразование денежного типа в числовой тип
МТОГЧ(<денежное выражение>)
Функция возвращает денежное выражение в числовой форме
12.3. ФУНКЦИИ ПРОВЕРКИ ФАЙЛОВ И ДИСКОВ
Так как среда программирования Visual FoxPro предоставляет возможность одновременной работы с несколькими таблицами, то для обращения к нужной таблице, проверки наличия таблицы, определения начала и конца таблицы и т. д. используются специальные функции. Для удобства работы с функциями проверки файлов они разделены на категории.
Ниже необязательный параметр <область> предоставляет возможность работать в любой пассивной рабочей области Пассивная область задается своим номером.
12.3.1. Определение начала файла
BOF([<o6.iacTb>J)
Функция возвращает значение «истина» (.Т.), если достигнуто начало файла: но не первая запись файла, а попытка прочитать несуществующую нулевую запись файла. Во всех остальных случаях возвращается значение «ложь* (.F.).
Пример.
С помощью кнопок «Вперед» и «Назад организовать просмотр таблицы «Catalog*. Из текущей записи на экран вывЯ дится название книги. При достижении конца таблицы на экран выводится сообщение «Достигнут конец таблицы», а при достижении начала таблицы на экран выдается сообщение «Достигну'* то начало таблицы».
USE Е:\Prim_bd\Catalog && Открытие таблицы
SET TALK OFF
CLEAR
activate SCREEN
■3 2,1 SAY 'Название книги: ' ♦ Name. book
DEFINE WINDOW wSkip FROM 9,10 TO 14,65 DOUBLE; COLOR SCHEME 5 FONT 'Times Mew Roman'
ACTIVATE WINDOW wSkip
3 1,5 GET gnChoice FUNCTION ' *HN \<Вперед;',- \ <Ha зад;\<Выход';
DEFAULT 0 SIZE 2,14 VALID CHOICE()
READ CYCLE
RELEASE WINDOW wSkip
Ш Я ' J "
PROCEDURE choice DO CASE
CASE gnChoice = 1 SKIP
IF EOF('Catalog') && Определение конца таблицы
WAIT WINDOW 'Достигнут конец таблицы'; NOWAIT
SKIP -1
ENDIF CASE gnChoice = 2 SKIP -1
IF BOF ('Catalog') ^Определение начала таблицы
WAIT WINDOW 'Достигнуто начало таблицы'; NOWAIT
GO TOP
ENDIF gnChoice = 3
CLEAR READ ENDCASE
Name_book |
ACTIVATE SCREEN 0 2.1 CLEAR TO 2,50 0 2,1 SAY 'Название книги: RETURN -T.
12.3.2. Определение имени табличного файла
DBF([<o(wiacTb>])
Возвращается прописными буквами полное имя (с указанием пути) открытого табличного файла (БД) в текущей или указа! ной рабочей области. Если открытого файла нет, то возвра: ся пустая строка.
Пример.
IN 2 ALIAS Cat IN 7 ALIAS Aut |
CLOSE ALL
USE Е: \Princ_bd\Catalog USE E:\Prim_bd\Author CLEAR
? DBF(2) && Выводит на экран путь к табличному
* файлу, открытому во 2 рабочей области
? DBF{'Aut')
&£с Выводит на экран путь к табличному
* файлу, открытому в рабочей области с
* псевдонимом Aut
12.3.3. Определение свободного места на активном диске
DISKSPACEO
Возвращает число свободных байт на активном диске. Пример.
? 'На текущем диске свободно ', DISKSPACEO, ' байт
12.3.4. Определение помеченных к удалению записей
pELETED([<o(wiacTb>])
функция возвращает значение «истина* (.Т.), если текущая запись помечена к удалению. Если надо определить вес записи, помеченные к удалению в указанной рабочей области, то используют команду:
LIST FOR DELETED([<o6.Tacib>])
Пример.
CLOSE ALL
SET DEFAULT no E:\Prim_bd USE Catalog IN 2 ALIAS Cat
&& Открытие табличного файла Catalog
USE Author IN 7 ALIAS Aut
&& Открытие табличного файла Author
SELE Aut
DELETE FROM Author.dbf WHERE Key_autor = 2
&& Вторую запись пометить к удалению.
CLEAR
LIST FOR DELETED{'Aut')
&& Вывести на экран помеченные к
* удалению записи.
RECALL ALL Ь& Со всех записей таблицы Author снять пометку к удалению
12.3.5. Определение конца файла
^р([<область>])
Функция возвращает значение «истина* (.Т.) когда сделана °Пытка прочитать следующую (за последней) запись, а не когда Достигнута последняя запись табличного файла. Во всех осталь- w случаях возвращает значение «ложь* (.F.).
Пример см. вп. 12.3.1.
12.3.6. Проверка наличия файла на диске
FILE(<hmh файла>)
Имя файла с расширением должно быть задано в виде строки в апострофах либо храниться в символьной переменной. Можно проверить наличие любого файла.
Пример.
CLOSE ALL
ЗЕТ DEFAULT ТО E:\Prim_bd 'JSE Catalog IN 2 ALIAS Cat USE Author IN 7 ALIAS Aut С LEA?
IF FILE('Catalog.dbf')
WAIT WINDOW 'Указанный файл присутствует' ELSE
WAIT WINDOW 'Указанный файл отсутствует' ENDIF
12.3.7. Определение имени поля
FIELD(<Bup. N> [,<область>])
Функция возвращает имя поля с номером <выр. N> из ука занной рабочей области. Если полей меньше, чем указано в <выр. N>, то выводится 0. Имя поля выводится прописными буквами.
Пример.
CLOSE ALL
SET DEFAULT TO E:\Prim_bd
USE Catalog IN 2 ALIAS Cat
USE Author IN 7 ALIAS Aut
CLEAR
SELE Cat
CLEAR
FOR i = 1 ТО FCOUNTO && Цикл на количество полей? FIELD(1) && Выводит на экран имя
текущего поля
NEXT
о
? 'Количество полей: ' + ALLTRIK(£T?.(i -1))
12.3.8. Анализ успешности поиска
FOUNDd <область>])
Функция возвращает значение «истина» (Т.), если команды LOCATE, CONTINUE и SEEK закончились успешно. Функция действует в указанной области и удобна для анализа результатов поиска в связанных базах данных.
Пример.
CLOSE ALL
SET DEFAULT ТО E:\Prim_bd
USE Catalog IN 2 ALIAS Cat
USE Author IN 7 ALIAS Aut
CLEAR
SELE Cat
SET TALK OFF
STORE 0 TO per
LOCATE FOR Year = 2000
DO WHILE FOUND{}
Per = per + 1
CONTINUE
ENDDO
I Wait window 'Количество книг, выпущенных в '+;
2000 году: ';
+ LTRIM(STR(per)) NOWAIT
LIST |
12.3.9. Определение количества полей в открытой базе данных
FCOUNT(L<o6.iatnv>])
Возвращает число полей в открытой базе данных. Если параметр <область> отсутствует, то определяется количество полей из таблицы, размещенной в текущей области.
Пример см. в 12.3.7.
12.3.10. Определение действующего значения фильтра
FILTER([<o6uacTb>])
Возвращает прописными буквами значение действующего фильтра в заданной рабочей области. Функция полезна при формировании диалога для отбора записей из базы данных.
Пример.
CLOSE ALL
SET DEFAULT TO E:\Prim_bd USE Catalog IN 2 ALIAS Cat USE Author IN 7 ALIAS Aut CLEAR SELE Cat
SET FILTER TO SUBSTR(Name_book,1) = 'V? 'Первый фильтр ', FILTER()
&& Выводит на экран условие первого фильтра| STORE FILTER!'Cat') ТО gcOldFilter
&& Сохраняет в памяти условие первого фильтр SET FILTER ТО Year = 1977? 'Второй фильтр ', FILTER!)
&& Выводит на экран условие второго фильтра^ LIST FIELDS Key_book, Year, Name_book
&& Выводит на экран результат работы второго фильтра
S3T FILTER ТО &gc01dFilter
&& Восстанавливает условия перзого фильтра
? 'Третий фильтр ', FILTER!)
&& Зыводит на экран условие восстановленного (первого) фильтра
FIELDS Key_book, Year, Name_Jx>ok ScSc Выводит на экран результаты первого (восстановленного) фильтра
12.3.11. Поиск значения поля по значению другого поля
LOOKUP(<noncl>, <выр.>, <полс 2>)
Ишет первое вхождение <выр> в Споле 2> из активной БД и возвращает значение <поля 1> из той же БД. Если табличный файл индексирован и индекс открыт, то производится индексный поиск. В противном случае производится последовательный поиск. Если поиск неудачный, то возвращается пустая строка и EOF() = True.
Пример.
CLOSE ALL
SET DEFAULT TO E:\Prirn_fcd
USE Catalog IN 2 INDEX Catalog ALIAS Cat ORDER TAG Name SET TALK OFF CLEAR SELE Cat
® 2,2 SAY LOOKUP(Price, ALLTRIM!'Лирика'), Name_book,; 'Name•)
12.3.12 Определение даты последнего изменения ЕД IUPDATE([ <области>])
Выводит дату последнего изменения БД.
Пример.
clear
•,LUPDATE()
&& Выводит на экран дату последнего изменения базы данных
12.3.13. Определение имени главного индексного файла
ORDER([<o6.iacnC>])
Возвращает прописными буквами имя главного индексного файла БД. Если такого файла нет, то возвращается пустая строк Функция используется при создании пользовательского интерфейса, когда применяется изменение главного индексного файла.
Пример.
CLOSE ALL
SET DEFAULT TO E:\Prin_bd
USE Catalog IN 2 INDEX Catalog ALIAS Cat ORDER;
TAG Name SET TALK OFF CLEAR SELE Cat
? ORDER О && Выводит на экран имя екущегс|
* индекса
? ORDER ('Cat', 1) СеСс Выводит на экран полное имя
* главного индексного файла
12.3.14. Определение номера текущей записи
RECNO([<ofuiacn>>])
Возвращает номер текущей записи.
Если команда RECNO была задана после команды SEEK и командой SEEK был выполнен неудачный поиск, то функция RECNOQ возвращает номер ближайшей записи, следующей Ш искомой (как если бы она была), то есть выполняется *мяТД кий* поиск (локализация области записей, приближенны» поиск).
Пример.
CLOSE ALL
SET DEFAULT ТО E:\Prim_bd
USE Catalog IN 2 INDEX Catalog ALIAS Cat ORDER;
TAG Name SET TALK OFF CLEAR SELE Cat
per = 'ЯЯЯ'
SEEK ALLTRIM(per)
IF FOUND(J
DISPLAY Name_book, Price
ELSE
CLEAR
? 'Отсутствует книга с названием ' + per? 'Номер последней записи: ' + ALLTRIM(STR (RECNO{) — 1)) ENDIF
12.3.15. Определение общего количества записей в ВД
КЕСС01ЛЧТ([<область>])
Возвращает обшее количество записей в БД, включая и записи, помеченные к удалению.
Пример.
C^>SE ALL
SET DEFAULT TO E:\Prim_bd
UsE Catalog IN 2 INDEX Catalog ALIAS Cat;
ORDER TAG Name SET TALK OFF CLEAR
SeLS Cat
peri = HEADER('Cat')
per = peri + (RECSIZE('Cat') * RECCOUNT('Cat') ■* 1) I? DISKSPACE (j > (per * 3)
WAIT WINDOW 'Свободного дискового пространства '+; 'достаточно для выполнения сортировки'
ELSE
WAIT WINDOW 'Свободного дискового пространства '+;
' недостаточно'
ENDIF
12.3.16. Определение размера записи файла БД
RECSIZE(l<o&»acib>])
Выводит размер записи в байтах.
Пример.
См. пример п. 12.3.15.
12.3.17. Определение размера заголовка БД
HEADER([<o6jiacTb>])
Выводит размер заголовка БД в байтах. Примерно: 32*(N + О байт, где N — число полей в БД.
См. пример в п. 12.3.15.
12.3.18. Поиск записи в индексированной ЕД
SEEK(<Bup.> [,<область>])
Выполняется поиск записи, содержащей <выр> в индексном файле и устанавливает на нее курсор (указатель записей). Пм удачном поиске возвращает значение «истина* (.Т.), а при н*1 удачном — значение «ложь* (.F.). Функция SEEKO эквиваленте комбинации команды SEEK и функции FOUND0-
Пример.
CLOSE ALL
s3T DEFAULT TO E:\Prim_bd
USE Catalog IN 2 INDEX Catalog ALIAS Cat;
ORDER TAG Name g£T TALK OFF CLEAR SELE Cat
? SEEK(ALLTRIM('Повести'))
Ub Если запись найдена, то на экран выводится.Т.
12.3.19. Анализ работы команды READ UPDATEO
Возвращает значение «истина* (.Т.), если при выполнении последней команды READ данные в ее областях GET каким-либо образом изменялись. В противном случае — значение «ложь» (. F.). Экономит время на перезаписи данных на диск, если они не менялись.
12.3.20. Вывод имени текущей директории
ССРОШ([диск])
Возвращает прописными буквами имя текущей директории на заданном диске. Если такого диска нет, то возвращается пустая строка.
Пример.
CLEAR
? 'Текущий каталог: CURDIRO
SCOldDir = SET('DEFAULT') + SYS(2003)
SET DEFAULT TO (HOMEO)
• 'Каталог Visual FoxPro: CURDIRO
SET DEFAULT TO (gcOldDir)
В1 'Текущий каталог: ', CURDIRO
12.3.21. Вывод имени активного диска
SYS(5)
Возвращает имя активного по умолчанию диска. Активный является либо стартовый диск, либо диск, установленный командой: SET DEFAULT ТО.
Пример.
CLEAR
IF _DOS OR „WINDOWS SET DEFAULT ТС C:
ZKDI?
? SYS(5) && Выводит на экран имя активного диске!
12.3.22. Вывод имени директории, где хранится FoxPro SYS(2004)
Возвращает полное имя директории, где хранится FoxPro. 1 Пример.
CLEAR. г
? 'Visual FoxPro размещен в каталоге: ', SYS(2004)
12.3.23. Вывод имени текущей директории SYS(2003)
Возвращает имя текущей директории на диске по умолчанщо. Имя диска не выводится. (12].
См. пример в п. 12.3.20.
12.4.1. Определение положения курсора
COL0
Возвращает номер текущей колонки на экране/окне. Пример.
CLEAR
в 5,5 SAY "
@ ROW(), COL<)+12 SAY 'Привет'
@ ROW(), $+12 SAY 'Hello'
12.4.2. Определение положения курсора
ROW0
Возвращает номер текущей строки на экране или в окне. См. пример в п. 12.4.1.
12.4.3. Определение позиции печати
PCOL0
Возвращает номер текущей колонки на принтере.
Пример.
CLEAR
9 PROW{), PCOLO+12 SAY 'Привет'
Э PROW<), $+12 SAY 'Hello'
12.4. ФУНКЦИИ ПОЗИЦИОНИРОВАНИЯ ВЫДАЧИ ДАННЫХ
При формировании и выводе на печать отчетов различной форМЧ широко используются функции позиционирования, то есть ук*в ния начала строки (начала печати). Стандартными функшй^И предусмотрены практически все возможности вывода текста на пИ чать и создания собственных функций, как правило, не требует^И
Дата добавления: 2015-09-29; просмотров: 13 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |