DropDown image DropDownHover image Collapse image Expand image CollapseAll image ExpandAll image Copy image CopyHover image

Возвращает заданную строку из поля типа Memo как строку символов.

ПримечаниеПредупреждение

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

MLINE(MemoFieldName, nLineNumber [, nNumberOfCharacters])

Параметры

MemoFieldName

Определяет поле таблицы типа memo, из которого MLINE( ) извлекает строку символов. Если поле memo находится в таблице, открытой не в текущей рабочей области, то имя поля указывается вместе с алиасом таблицы (как table.field).

nLineNumber

Определяет номер строки, которую нужно извлечь из поля memo. Если значение nLineNumber отрицательно, 0, или больше чем общее количество строк в поле memo, MLINE( ) возвращает пустую строку.

MLINE( ) удаляет концевые пробелы в возвращаемой строке символов, под номером nLineNumber.

nNumberOfCharacters

Определяет символов относительно начала поля memo, с которой ведется отчет при выборе строки символов.

Системная переменная _MLINE обычно используется для параметра nNumberOfCharacters. _MLINE автоматически изменяет свое значение после каждого вызова функции MLINE( ). При построении рекурсивных процедур обработки длинных полей memo рекомендуется использовать значение _MLINE в параметре nNumberOfCharacters. Для дополнительной информации см. также  системная переменная _MLINE.

Expand imageВозвращаемое Значение

Типа Character или Varbinary. MLINE( ) возвращает строку символов из поля типа Memo. Если функция MLINE( ) используется для обработки двоичных значений , таких как, Varbinary и Blob, то возвращаются данные типа Varbinary.

Expand imageКомментарии

Длина и количество строк в поле типа memo определяется текущей установкой команды SET MEMOWIDTH (по-умолчанию, это значение =  50 символов). Если появляется символ "возврата коретки", то остальные символы не возвращаются в текущей строке. Текущая установка системной переменной _WRAP определяет вид отображения полей типа memo.

Для поиска символьной строки в поле типа memo используйте функции ATLINE( ) или ATCLINE( ), которые возвращают номер строки, где расположены искомые символы. По данному номеру функцией MLINE( ) извлекается необходимая строка из поля типа memo.

Expand imageПример

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

  CopyCode imageКопировать Код
CLEAR
SET TALK OFF
SET MEMOWIDTH TO 50
CLOSE DATABASES
CREATE TABLE tmemo (name c(10), notes m)
APPEND BLANK && Add a record
WAIT WINDOW 'Filling memo field - takes several seconds' NOWAIT
*** Fill the memo field ***
FOR gnOuterLoop = 1 TO 5 && loop 5 times
FOR gnAlphabet = 65 TO 75 && letters A to H
REPLACE notes WITH REPLICATE(CHR(gnAlphabet), 10) ;
+ CHR(13) ADDITIVE
NEXT
NEXT

*** Display all lines from the memo field ***
STORE MEMLINES(notes) TO gnNumLines && Number of lines in memo field
STORE SECONDS( ) TO gnBegin && Beginning time
FOR gnCount = 1 TO gnNumLines && Loop for # of lines in memo field
? MLINE(notes, gnCount) && Display each line
NEXT
? STR(SECONDS( ) - gnBegin, 4, 2) + ' seconds' && Total time

*** Preferable method using _MLINE in MLINE( ) ***
*** Display all lines from the memo field ***
WAIT 'Press a key to see the preferred method' WINDOW
CLEAR
STORE 0 TO _MLINE && Reset _MLINE to zero
STORE SECONDS( ) TO gnBegin && Beginning time
FOR count = 1 TO gnNumLines && Loop for # of lines in memo field
? MLINE(notes, 1, _MLINE) && Display each line
NEXT
? STR(SECONDS( ) - gnBegin, 4, 2) + ' seconds' && Total time
SET TALK ON
CLOSE DATABASES
ERASE tmemo.dbf
ERASE tmemo.fpt

Expand imageСм. также