Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Среднее профессиональное образование 18 страница



Пример.

? 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 | Нарушение авторских прав







mybiblioteka.su - 2015-2024 год. (0.082 сек.)







<== предыдущая лекция | следующая лекция ==>