Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VisualFoxPro.doc
Скачиваний:
15
Добавлен:
01.07.2025
Размер:
11 Мб
Скачать
☆

3.8.3. Функции для memo-полей

Функция

MEMLINES(MemoFieldName)

возвращает число строк в memo-поле MemoFieldName текущей записи таблицы. Если адресуется memo-поле таблицы, открытой в нетекущей области, то имя поля предваряется псевдонимом таблицы и точкой. Длина и число строк memo-поля определяются установкой команды SET MEMOWIDTH (значение по умолчанию – 50).

Функция

MLINE(MemoFieldName, nLineNumber [, nNumberOfCharacters])

возвращает заданную строку memo-поля MemoFieldName. Результат имеет тип Character или Varbinary. Результат типа Varbinary возвращается при работе с полями типов Varbinary и Blob.

Параметры:

nLineNumber – номер возвращаемой строки. Возвращается пустая строка, если параметр nLineNumber отрицателен, равен нулю или больше числа строк в memo-поле.

nNumberOfCharacters – число символов от начала memo-поля, пропустив которые функция MLINE( ) возвращает заданную строку.

Обычно для задания nNumberOfCharacters используется системная переменная _MLINE, значение которой обновляется текущим отступом от начала memo-поля после каждого вызова MLINE( ).

Замечание. Для обработки двоичных полей лучше употреблять функцию ALINES( ), поскольку с такими полями MLINE( ) может возвращать не вполне ожидаемые результаты при разных установках SET MEMOWIDTH.

Функция MLINE( ) после чтения строки, например, с номером gnCount заносит в _MLINE новое значение, равное

_MLINE = _MLINE + Len(MLINE(MemoField, gnCount))

После чтения первой строки:

_MLINE = Len(MLINE(MemoField, gnCount))

Функция MLINE( ) отбрасывает все хвостовые пробелы получаемой строки.

Конец строки memo-поля определяет либо символ возврата каретки, либо при его отсутствии – установка команды SET MEMOWIDTH.

При обработке больших memo-полей рекурсивными процедурами использование _MLINE в качестве значения nNumberOfCharacters может улучшить производительность.

Для поиска в memo-поле употребляются функции ATLINE( ) и ATCLINE( ).

Пример. Приводятся 2 варианта использования MLINE( ) для получения строк memo-поля Notes текущей записи текущей таблицы. Во втором, более быстром, употребляется системная переменная _MLINE.

store Memlines(Notes) to gnNumLines && Число строк в memo-поле

&&

&& Вариант 1

for gnCount = 1 to gnNumLines

? Mline(notes, gnCount) && Печатаем строку memo-поля

next

&&

&& Вариант 2

store 0 to _MLINE && Инициализация _MLINE

for gnCount = 1 to gnNumLines

? Mline(Notes, 1, _MLINE) && Печатаем строку memo-поля

next

3.9. Дата и время

3.9.1. Перечень команд и функций

Приведен в табл. 3.34.

Таблица 3.34

Список команд и функций

Команда / функция

Описание

Команды

SET CENTURY

Обеспечивает воспроизведение года в виде 4-х или 2-х цифр

SET CLOCK

Управляет выводом системных часов

SET DATE

Задает формат отображения значений типа Date и DateTime

SET FDOW

Устанавливает первый день недели

SET FWEEK

Задает требования к первой неделе года

SET HOURS

Задает 12- или 24-часовой формат представления времени

SET MARK

Задает разделитель между частями даты

SET SECONDS

Управляет видимостью секунд при выводе даты и времени

SET STRICTDATE

Говорит системе, нужно ли генерировать ошибку при обнаружении неверной даты (даты и времени) или нет

Функции

SYS(1)

Возвращает строку, содержащую номер дня по юлианскому календарю и отвечающую системной дате

SYS(11)

Преобразовывает дату, дату и время или строку в формате даты или даты и времени григорианского календаря в номер дня по юлианскому календарю

SYS(10)

Переводит номер дня по юлианскому календарю в символьное представление даты по григорианскому календарю

Системная переменная

_DIARYDATE

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

Прочие функции для даты и даты и времени см. в табл. 3.36.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]