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

3.7.5. Функции для символьных данных

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

Таблица 3.25

Символьные функции

Функция

Описание

ALINES( )

Копирует каждую строку символьной строки или memo-поля в соответствующий элемент одномерного массива

ALLTRIM(Expression [, nFlags] [, cParseChar [, cParseChar2 [, ...]]])

Возвращает параметр Expression без ведущих и хвостовых пробелов, cParseChar-строк или 0-байтов. Expression – выражение типа Character или Varbinary, из которого удаляются ведущие и хвостовые пробелы или 0-байты или cParseChar, cParseChar2, .... строки. nFlags – задает, будет ли удаление чувствительным к регистру, когда заданы удаляемые символы cParseChar, cParseChar2, … cParseChar [, cParseChar2 [, ...]] – удаляемые начальные или конечные символьные строки. Если параметры не заданы, то удаляются пробелы или 0-байты. Максимальное число cParseChar-строк – 23

ASC(cExpression)

Возвращает ANSI-код первого символа строки cExpression

AT(cSearchExpression, cExpressionSearched [, nOccurrence])

Возвращает номер позиции, с которой подстрока cSearchExpression начинается в строке cExpressionSearched. Если задан параметр nOccurrence, то ищется вхождение, номер которого равен nOccurrence; направление поиска – слева направо

ATC(cSearchExpression, cExpressionSearched [, nOccurrence])

Работает так же, как и AT( ), не учитывая регистр сравниваемых символов

ATCLINE(cSearchExpression, cExpressionSearched)

Возвращает номер строчки, в которой подстрока cSearchExpression имеется в строке cExpressionSearched; направление поиска – снизу вверх; поиск ведется без учета регистра сравниваемых символов. Результат зависит от установки, заданной командой SET MEMOWIDTH

ATLINE(cSearchExpression, cExpressionSearched)

Работает так же, как и ATCLINE( ), но уже учитывая регистр сравниваемых символов

BINTOC(nExpression [, nSize])

Преобразовывает целую величину nExpression в двоичную в символьном представлении; рассмотрена в табл. 3.12

CHR(nANSICode)

Возвращает по ANSI-коду nANSICode соответствующий ему символ

CHRSAW(nSeconds)

Возвращает .T., если в буфере клавиатуры есть символ, или .F. – в противном случае

CHRTRAN( cSearchedExpression, cSearchExpression, cReplacementExpression)

Замещает символ строки cSearchedExpression, если он имеется в строке cSearchExpression, на символ из строки cReplacementExpression; позиции участвующих в замене символов второй и третьей строк совпадают. Если cReplacementExpression имеет меньше символов, чем cSearchExpression, то избыточные символы cSearchExpression удаляются из cSearchedExpression. Если в cReplacementExpression больше символов, чем в cSearchExpression, то дополнительные символы cReplacementExpression игнорируются

CPCONVERT( nCurrentCodePage, nNewCodePage, cExpression)

Заменяет текущую кодовую страницу nCurrentCodePage строки cExpression на новую nNewCodePage (перечень кодовых страниц приведен в разд. 3.7.6)

CREATEBINARY(cExpression)

Преобразовывает строку символов cExpression, созданную в VFP, в двоичную строку символов, пригодную для передачи объекту ActiveX или объекту автоматизации

CTOBIN(cExpression [, cFlags])

Преобразовывает двоичное число cExpression в символьном представлении в целую величину; выполняет действие, обратное действию BINTOC( ). Если символьное представление числовой величины, заданное cExpression, имеет размер 4 или 8 байт, то типом результата функции можно управлять параметром cFlags, принимающим следующие значения:  1, 2, 4 или 8 – длина cExpression соответственно 1, 2, 4 или 8 байт;  B – длина cExpression должна быть 8 байт; CTOBIN( ) возвращает величину типа Double;  N – длина cExpression должна быть 4 или 8 байт; CTOBIN( ) возвращает величину типа Numeric;  Y – длина cExpression должна быть 8 байт; CTOBIN( ) возвращает величину типа Currency;  R – реверсирует двоичное выражение;  S – предотвращает изменение знакового бита числа (BITXOR). Параметр cFlags используется аддитивно; регистр символов произвольный, например:

? Ctobin("A") && или CTOBIN("A", "1") ? Ctobin(Bintoc($12.34, "8"), "Y") ? Ctobin(Bintoc(12.34, "8"), "B") ? Ctobin(Bintoc(Pi( ),"BR"), "NRS")

CTOD(cExpression)

Преобразовывает строку cExpression в дату. Функция может возвращать неверные даты, если SET STRICTDATE установлен в 2. При такой установке следует пользоваться DATE( )

CTOT(cExpression)

Преобразовывает строку cExpression в дату и время. Если SET STRICTDATE установлен в 2, следует использовать DATETIME( )

DIFFERENCE(cExpression1, cExpression2)

Возвращает целое число от 0 до 4, характеризующее фонетическую разность между строками cExpression1 и cExpression2. Результат тем больше, чем выше схожесть в произношении строк cExpression1 и cExpression2. Для строк различных в фонетическом отношении функция вернет 0, для схожих – 4

DMY(dExpression | tExpression)

Возвращает символьное представление даты и времени в формате ДД Месяц ГГ | ГГГГ. Подробное описание см. в табл. 3.36

DTOC(dExpression | tExpression [, 1])

Возвращает символьное представление даты или даты и времени; если задан 2-й параметр, то результат формируется в том же формате, что и функцией DTOS( ). Подробное описание см. в табл. 3.36

DTOS(dExpression | tExpression)

Возвращает символьное представление даты или даты и времени в формате ГГГГММДД [ччммсс]. Подробное описание см. в табл. 3.36

EMPTY(eExpression)

Возвращает .T., если выражение eExpression пустое, или .F. – в противном случае. Строка считается пустой, если она имеет нулевую длину, состоит из пробелов, символов табуляции, возврата каретки или конца строки или из произвольной комбинации указанных символов

? Empty(' ' + Chr(10)) && Напечатает: .T.

EVALUATE(cExpression)

Оценивает выражение, заключенное в кавычки, и возвращает его результат; рассмотрена в разд. 5.6.2

FILETOSTR(cFileName)

Возвращает содержимое текстового файла cFileName в виде символьной строки. Имя файла может включать путь и должно содержать расширение, если таковое имеется. Максимальное число символов в строке равно 16,777,184

GETWORDCOUNT(cString [, cDelimiters])

Возвращает число слов в строке cString. Заданные по умолчанию разделители слов (пробел, символы табуляции, конца строки и возврата каретки) можно заменить на иные, употребив параметр cDelimiters. При этом заданные по умолчанию разделители слов игнорируются. Каждый символ cDelimiters рассматривается функцией GETWORDCOUNT( ) как отдельный разделитель

GETWORDNUM(cString, nIndex [, cDelimiters])

Возвращает слово, присутствующее в строке cString под номером nIndex. По умолчанию в качестве разделителей слов употребляются пробел, символы табуляции, конца строки и возврата каретки. Параметр cDelimiters позволяет задать другие разделители. Каждый символ cDelimiters используется как самостоятельный разделитель. Если в строке cString меньше слов, чем задано параметром nIndex, то функция вернет пустую строку

INLIST(eExpression1, eExpression2 [, eExpression3])

Возвращает .T., если параметр eExpression1 равен хотя бы одному из последующих параметров функции (которых может быть не более 24-х), или .F. – в противном случае; правила сравнения строк регулируется командой SET EXACT

IMESTATUS([nExpression])

Устанавливает IME (Input Method Editor) окно в ON (nExpression = 0) или в OFF (nExpression = 1) или возвращает текущий IME-статус

ISALPHA(cExpression)

Возвращает .T., если первый символ строки cExpression является буквой, или .F. – в противном случае

ISBLANK(eExpression)

Если eExpression имеет символьный тип, то функция вернет .T., когда eExpression – это строка нулевой длины или строка из пробелов, или символьное поле вновь добавленной APPEND BLANK-записи, либо очищенной BLANK. В противном случае функция вернет .F. Отличается от EMPTY( ) и ISNULL( ). Так, EMPTY( ) вернет .T., когда строка – это комбинации символов табуляции, пробелов, возврата каретки или конца строки. ISBLANK( ) в такой ситуации вернет .F.

ISDIGIT(cExpression)

Возвращает .T., если первый символ строки cExpression является цифрой, или .F. – в противном случае

ISLEADBYTE(cExpression)

Вернет .T., если первый байт первого символа строки cExpression является ведущим байтом 2-байтовой строки. Вернет .F., если cExpression – это 1-байтовая строка

ISLOWER(cExpression)

Возвращает .T., если первый символ строки cExpression является строчной буквой, или .F. – в противном случае

ISUPPER(cExpression)

Возвращает .T., если первый символ строки cExpression является прописной буквой, или .F. – в противном случае

LEFT(cExpression, nCharacters)

Возвращает первые nCharacters символов строки cExpression. Вернет пустую строку, если nCharacters ≤ 0

LEN(cExpression)

Возвращает длину (число символов) строки cExpression

LIKE(cExpression1, cExpression2)

Возвращает .T., если строка cExpression1 соответствует строке cExpression2, или .F. – в противном случае. Параметр cExpression1 может содержать символы * и ?, употребляемые в общепринятом смысле. SET COMPATIBLE определяет, как оцениваются параметры функции. Если установка SET COMPATIBLE – это ON или DB4, хвостовые пробелы в cExpression1 и cExpression2 перед сравнением удаляются, в противном случае они сохраняются и учитываются при сравнении (примеры см. в разд. 3.7.3)

LOWER(cExpression)

Возвращает строку cExpression, в которой прописные буквы заменены на строчные

LTRIM(Expression [, nFlags] [, cParseChar [, cParseChar2 [, ...]]])

Возвращает параметр Expression без ведущих пробелов, cParseChar-строк или 0-байтов. Параметры описаны при рассмотрении функции ALLTRIM( )

MAX(eExpression1, eExpression2 [, eExpression3 …])

Возвращает значение наибольшего параметра

MIN(eExpression1, eExpression2 [, eExpression3 …])

Возвращает значение наименьшего параметра

NORMALIZE(cExpression)

Приводит выражение, содержащееся в строке cExpression, к виду, который имеют выражения, возвращаемые некоторыми функциями VFP, например функцией KEY( ). Возвращает символьную строку, получаемую из cExpression в результате следующих преобразований:  строчные символы выражения заменяются на прописные, однако вложенные строки не меняются, например

Normalize("Left('Hello', 1)")

вернет

LEFT('Hello',1);

 любое сокращенное имя встроенной функции (ключевого слова) расширяется до полного имени, например

Normalize("isdi(subs(someString, k))")

вернет

ISDIGIT(SUBSTR(SOMESTRING,K));

 знаки операции –>, разделяющие псевдоним от имени поля заменяются на точку, например

Normalize("uppe(cust–>fname)")

вернет

UPPER(CUST.FNAME)

Если выражение, содержащееся в строке cExpression, синтаксически неверно, то NORMALIZE( ) генерирует сообщение об ошибке. Функция не проверяет существования указанных в выражении ссылок – имен полей, переменных, пользовательских процедур и др.

OCCURS(cSearchExpression, cExpressionSearched)

Возвращает число вхождений подстроки cSearchExpression в строку cExpressionSearched

PADL(cExpression, nResultSize [, cPadCharacters]) PADR(cExpression, nResultSize [, cPadCharacters]) PADC(cExpression, nResultSize [, cPadCharacters])

Возвращает строку cExpression, в которую добавлен несколько раз пробел, если cPadCharacters опущен или равен пробелу, или заданные символы cPadCharacters. Пробелы или иные символы в случае PADL( ) добавляются слева, в случае PADR( ) – справа, а в случае PADC( ) – и слева и справа. Число добавленных символов таково, что длина результирующей строки равна nResultSize. Если nResultSize меньше длины cExpression, то функция вернет LEFT(cExpression, nResultSize)

PROPER(cExpression)

Возвращает строку cExpression, в словах которой первые буквы заменены на прописные, а все остальные – на строчные

RAT(cSearchExpression, cExpressionSearched [, nOccurrence])

Возвращает номер позиции, с которой подстрока cSearchExpression начинается в подстроке cExpressionSearched. Если задан параметр nOccurrence, то ищется вхождение, номер которого равен nOccurrence; направление поиска – справа налево

RATLINE(cSearchExpression, cExpressionSearched)

Возвращает номер строчки, в которой подстрока cSearchExpression имеется в строке cExpressionSearched; направление поиска – снизу вверх; поиск ведется с учетом регистра выражений. Нумерация строк ведется сверху вниз, т. е. так же, как и при работе с функцией ATLINE( ). Результат зависит от установки, заданной командой SET MEMOWIDTH

REPLICATE(cExpression, nTimes)

Возвращает строку, образованную в результате повторения nTimes раз строки cExpression

RIGHT(cExpression, nCharacters)

Возвращает последние nCharacters символов строки cExpression. Функция вернет пустую строку, если nCharacters ≤ 0

RTRIM(Expression [, nFlags] [, cParseChar [, cParseChar2 [, ...]]])

Возвращает параметр Expression без хвостовых пробелов, cParseChar-строк или 0-байтов. Параметры описаны при рассмотрении функции ALLTRIM( )

SOUNDEX(cExpression)

Возвращает 4 символа, характеризующие фонетическое представление заданной строки cExpression. Сравнивая результаты функции, полученные для разных строк, можно определить, насколько эти строки близки фонетически. Функция может быть использована для поиска в таблицах схожих описаний

SPACE(nSpaces)

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

STR(nExpression [, nLength [, nDecimalPlaces]])

Преобразовывает число nExpression в строку, содержащую nLength символов, из которых nDecimalPlaces символов используются для отображения цифр после десятичной точки. Если nLength больше имеющихся в числе nExpression символов, то STR( ) добавит к результату с левой стороны пробелы. Если nExpression имеет тип Numeric или Float и величина nLength недостаточна для представления числа, то STR( ) пытается представить число в научном формате; если это невозможно, то результат выводится в виде звездочек. Если nExpression – это целое число и величина nLength недостаточна для его представления, то результат выводится в виде звездочек. Если параметр nLength опущен, то длина результирующей строки равна 10 символам. Если nDecimalPlaces меньше, чем число десятичных знаков в nExpression, то перед преобразованием nExpression округляется. Если параметр nDecimalPlaces не задан, то число десятичных знаков в результате равно 0; десятичная точка не отображается

STRCONV(cExpression, nConversionSetting [, nRegionalIdentifier [, nRegionalIDType]])

Преобразовывает строку cExpression в строку указанного вида: 1-байтовую, 2-байтовую, UNICODE и др. или выполняет иное преобразование. Рассмотрена после настоящей табл. и примеров

STREXTRACT( cSearchExpression, cBeginDelim [, cEndDelim [, nOccurrence [, nFlag]]]])

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

STRTOFILE(cExpression, cFileName [, lAdditive | nFlag])

Записывает строку cExpression в файл cFileName. Рассмотрена после настоящей табл. и примеров

STRTRAN(cSearched, cExpressionSought [, cReplacement] [, nStartOccurrence] [, nNumberOfOccurrence], [, nFlags])

Находит в строке cSearched подстроку cExpressionSought и заменяет ее вхождения подстрокой cReplacement. Номер первого заменяемого вхождения задается параметром nStartOccurrence. Число замен ограничивает параметр nNumberOfOccurrence. Преобразованная строка возвращается в качестве результата. Параметры cSearched и cExpressionSought могут быть memo-полями. Если параметр cReplacement опущен, то каждое вхождение cExpressionSought замещается строкой нулевой длины. Если опущен параметр nStartOccurrence, то замены выполняются начиная с первого вхождения cExpressionSought. Если опущен параметр nNumberOfOccurrence, то выполняются все замены начиная с вхождения под номером nStartOccurrencet Параметр nFlags принимает следующие значения:  0 (по умолчанию) – чувствительный к регистру поиск;  1 – нечувствительный к регистру поиск;  2 – чувствительный к регистру поиск, найденное вхождение заменяется на строку cReplacement, регистр которой приведен в соответствие с регистром найденного вхождения. Правда, такое изменение будет выполнено, если найденная подстрока целиком состоит из прописных или строчных букв или является proper-строкой (см. функцию PROPER( ));  3 – то же, что и 2, но выполняется нечувствительный к регистру поиск. Значение необязательных параметров, которые нужно пропустить, устанавливаются равными –1

STUFF(cExpression, nStartReplacement, nCharactersReplaced, cReplacement)

Возвращает строку, полученную в результате замены в строке cExpression начиная с позиции nStartReplacement заданного числа символов (nCharactersReplaced) на подстроку cReplacement. Если nCharactersReplaced = 0, то строка cReplacement вставляется в cExpression. Если cReplacement является строкой нулевой длины, то из строки cExpression удаляются nCharactersReplaced символов, если вдобавок nStartReplacement + nCharactersReplaced – 1 больше длины строки, то удаляются все символы начиная с символа nStartReplacement

SUBSTR(cExpression, nStartPosition [, nCharacterReturned])

Возвращает подстроку, состоящую из символов строки cExpression, взятых начиная с позиции nStartPosition. Число возвращаемых символов может быть ограничено параметром nCharacterReturned. Если nStartPosition больше длины cExpression, то функция вернет строку нулевой длины. При употреблении SUBSTR( ) с memo-полями в SELECT – SQL используйте вдобавок PADR( ), чтобы получать надлежащие результаты при обработке пустых или переменной длины memo-полей

SYS(10, nJulianDayNumber)

По известной дате юлианского календаря, представленной в виде числа nJulianDayNumber, возвращает символьное представление даты по новому стилю. Рассмотрена в разд. 3.9.5

SYS(2007, cExpression [, nSeed [, nFlags]])

Возвращает контрольную сумму символьного параметра cExpression. Рассмотрена после настоящей табл. и примеров

TEXTMERGE(cExpression [, lRecursive [, cLeftDelim [, cRightDelim]]])

Выполняет оценку подстрок, входящих в строку cExpression и заключенных между левым и правым разделителями, и возвращает полученную строку в качестве результата. Если параметр lRecursive задан и равен .T., то функция произведет оценку выражений на всех уровнях вложения разделителей текста. Параметры cLeftDelim и cRightDelim задают соответственно левый и правый разделители текста. Параметры не должны содержать более 2-х символов. Если параметры cLeftDelim и cRightDelim не указаны, то используются заданные по умолчанию или командой SET TEXTMERGE DELIMITERS разделители. Если параметры присутствуют, то они временно замещают разделители, заданные этой командой. Функция TEXTMERGE( ) подвержена установкам, задаваемым командой SET TEXTMERGE SHOW | NOSHOW

RTRIM(Expression [, nFlags] [, cParseChar [, cParseChar2 [, ...]]])

Возвращает, так же как и RTRIM( ), параметр Expression без хвостовых пробелов, cParseChar-строк или 0-байтов. Параметры описаны при рассмотрении функции ALLTRIM( )

TTOC(dExpression | tExpression [, 1 | 2])

Возвращает символьное представление даты dExpression или даты и времени tExpression. Описание и примеры см. в табл. 3.36

TRANSFORM(eExpression [, cFormatCodes])

Преобразовывает eExpression в строку символов в соответствии с форматной строкой, заданной параметром cFormatCodes, и возвращает ее в качестве результата. Рассмотрена после настоящей табл. и примеров

TXTWIDTH(cExpression [, cFontName, nFontSize [, cFontStyle]])

Возвращает длину символьного выражения cExpression с учетом средней ширины символа шрифта. Средняя ширина символа в пикселях для заданного шрифта возвращается функцией FONTMETRIC(6, …). В случае непропорционального шрифта функция возвращает число символов в cExpression. Необязательные параметры cFontName, nFontSize и cFontStyle задают соответственно имя, размер и стиль шрифта. Возможные значения параметра cFontStyle см. в табл. 4.3

TYPE(cExpression)

Оценивает выражение cExpression, заключенное в кавычки, и возвращает тип его результат

UPPER(cExpression)

Возвращает строку cExpression, в которой строчные буквы заменены на прописные

VAL(cExpression)

Возвращает числовое значение, содержащееся в начальной подстроке строки cExpression, состоящей из цифр и имеющую, возможно, одну точку. Так, в строке "+234.55АБВ" в число будет преобразована начальная подстрока "+234.55". Строка cExpression может начинаться с символов '$', '+', '–' и '.'. Если первый символ строки отличен о указанных и не является числом, то VAL( ) вернет 0. Если первый символ строки – это '$', то VAL( ) вернет значение типа Currency

VARTYPE(eExpression [, lNullDataType])

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

Замечания:

  1. На месте cExpression может быть как символьное выражение, так и memo-поле.

  2. Некоторые приведенные функции, имеют аналоги, работающие 2-байтовыми символами. Имена функций-аналогов образуются путем добавления латинской буквы "C" в конец имени функции-прототипа, например: LEFT( ) – LEFTC( ). Если после добавления получается имеющееся в табл. 3.25 имя, то перед добавленной буквой проставляется символ подчеркивания, например: AT( ) – AT_C( ). Если 2-байтовой функции подать 1-байтовый параметр, то она сработает так же, как и функция-прототип. Имена функций, имеющих 2-байтовые аналоги: AT( ), ATC( ), CHRTRAN( ), LEFT( ), LEN( ), LIKE( ), RAT( ), RIGHT( ), STUFF( ) и SUBSTR( ).

  3. Символьные функции могут оперировать полями типа Varchar и Varchar (Binary).

  4. Символьные функции могут принимать двоичные параметры. Тип результата функции определяется типом ее параметров, например:

? Substr('abc', 2) && Напечатает: bc ? Substr(0h616263, 2) && Напечатает: 0h6263

Примеры:

&&

&& ALLTRIM( ), LTRIM( ), RTRIM( ) и TRIM( )

? 'ab' + ' cd ' + 'ef' && Напечатает: ab cd ef

? 'ab' + Alltrim(' cd ') + 'ef' && Напечатает: abcdef

? 'ab' + Ltrim(' cd ') + 'ef' && Напечатает: abcd ef

? 'ab' + Rtrim(' cd ') + 'ef' && Напечатает: ab cdef

? 'ab' + Trim(' cd ') + 'ef' && Напечатает: ab cdef

? Alltrim(' a1A155B2b2 ', 1, ' ', 'a1', 'b2') && Напечатает: 55

? Alltrim(' a1A155B2b2 ', 0, ' ', 'a1', 'b2') && Напечатает: A155B2

&&

&& ASC( ) и CHR( )

? Asc('Ю') && Напечатает: 222

? Chr(Asc('Ю')) && Напечатает: Ю

&&

&& AT( ), ATC( ) и RAT( )

? At('ab', 'abcdabcd', 2) && Напечатает: 5

? At('aB', 'abcdabcd', 2) && Напечатает: 0

? Atc('aB', 'abcdabcd', 2) && Напечатает: 5

? Rat('ab', 'abcdabcd') && Напечатает: 5

&&

&& ATCLINE( ), ATLINE( ) и RATLINE( )

&& Memo-поле MemoB текущей записи таблицы Test содержит следующий

&& расположенный на 2-х строчках текст:

&& Это memo-поле

&& и его вторая строка

? Atcline('Вторая', Test.MemoB) && Напечатает: 2

? Atline('Вторая', Test.MemoB) && Напечатает: 0

? Ratline('вторая', Test.MemoB) && Напечатает: 2

&& Изменяем число символов в одной строчке символьного выражения

set memowidth to 10

? Atcline('Вторая', Test.MemoB) && Напечатает: 4

&& CHR(13) – символ возврата каретки

someText = "Text Line 1" + Chr(13) + "Text Line 2" + Chr(13) + "Text Line 3"

? Atline("Text", someText) && Напечатает: 1

? Ratline("Text", someText) && Напечатает: 3

&&

&& CHRTRAN( )

? Chrtran("1a2ab3bc", "abc", "def") && Напечатает: 1d2de3ef

? Chrtran("ABCD", "ABC", "XY") && Напечатает: XYD

&&

&& CPCONVERT( )

&& Получаем текущую кодовую страницу

cp = CPCurrent( )

windowsString = 'Преобразованная строка'

&& 866 – номер кодовой страницы Russian MS DOS

&& Преобразование Windows – DOS

dosString = CPConvert(cp, 866, windowsString)

? dosString && Напечатает:

&& Преобразование DOS – Windows

windowsString = CPConvert(866, cp, dosString)

? windowsString && Напечатает: Преобразованная строка

&&

&& CTOD( ), CTOT( ), DTOC( ), DTOS( ), DMY( ) и TTOC( )

&& Примеры см. в табл. 3.36

&&

&& EVALUATE( )

&& Примеры см. в разд. 5.6.2

&&

&& GETWORDCOUNT( ) и GETWORDNUM( )

someString = "AAA aaa, BBB" + Chr(10) + "bbb, CCC ccc"

&& В строке 2 заданных по умолчанию вида разделителей: пробел

&& и CHR(10) – символ конца строки

? GetWordCount(someString) && Напечатает: 6

&& В качестве разделителя берется запятая

? GetWordCount(someString, ",") && Напечатает: 3

? GetWordNum(someString, 2) && Напечатает: aaa,

? GetWordNum(someString, 2, ",")

&& Напечатает два слова на двух строках:

BBB

bbb

&&

&& INLIST( )

&& Параметры функции имеют тип Character

? Inlist('cd', 'cd1', 'cd') && Напечатает: .T.

? Inlist('cd', 'cd1', 'cd2') && Напечатает: .F.

set exact off

? Inlist('cd3', 'cd1', 'cd') && Напечатает: .T.

set exact on

? Inlist('cd3', 'cd1', 'cd') && Напечатает: .F.

&& Параметры функции – имеют тип Numeric

? Inlist(1, 2, 4, 1, 3) && Напечатает: . T.

&&

&& ISLOWER( ), ISUPPER( )

? Islower('Ю') && Напечатает: .F.

? Isupper('Ю') && Напечатает: .T.

&&

&& LOWER( ) и UPPER( )

? Lower('aBCd') && Напечатает: abcd

? Upper('abCd') && Напечатает: ABCD

&&

&& MAX( )

? Max('cd1', 'cd3', 'cd2') && Напечатает: cd3

&&

&& NORMALIZE( )

? Normalize('2 * x * exp( - x)') && Напечатает: 2*X*EXP(-X)

&&

&& PADL( ), PADR( ) и PADC( )

? Padl('abc', 9, '-') && Напечатает: ------abc

? Padr('abc', 9, '-*') && Напечатает: abc-*-*-*

? Padc('abc', 9, '*-') && Напечатает: *-*-abc*-*

&&

&& PROPER( )

? Proper("ниКОлаЕВ н. а.") && Напечатает: Николаев Н. А.

&&

&& REPLICATE( )

? Replicate('Ab', 3) && Напечатает: AbAbAb

&&

&& SOUNDEX( )

? Soundex('Alpha') && Напечатает: A410

&& Alpha, Alpa и Alp могут описывать в таблицах одну сущность

&& Возможно, что лучше вместо трех различных && описаний использовать одно – Alpha

? Soundex('Alpha') = Soundex('Alpa') && Напечатает: .T.

? Soundex('Alpha') = Soundex('Alp') && Напечатает: .T.

? Soundex('beta') && Напечатает: B300

&&

&& SPACE( )

? 'ab' + Space(10) + 'cd' && Напечатает: ab cd

&&

&& STR( )

? Str(6.725) && Напечатает: 6

? Str(6.725, 4, 2) && Напечатает: 6.73

? Str(6.725, 5, 3) && Напечатает: 6.725

? Str(Exp(23)) && Напечатает 9744803446

? Str(Exp(24)) && Напечатает: 2.648E+10

? Str(12345, 4) && Напечатает: ****

&&

&& STRTRAN( )

someString = "aBCaBCaBCaBC"

? Strtran(someString, "BC") && Напечатает: aaaa

? Strtran(someString, "BC", "D") && Напечатает: aDaDaDaD

? Strtran(someString, "BC", "D", 3) && Напечатает: aBCaBCaDaD

? Strtran(someString, "BC", "D", 2, 1) && Напечатает: aBCaDaBCaBC

&& Нечувствительный к регистру поиск

? Strtran(someString, "bc", "d", -1, -1, 1) && Напечатает: adadadad

&& Нечувствительный к регистру поиск;

&& изменение регистра заменяющего символа "d"

? Strtran(someString, "bc", "d", -1, -1, 3) && Напечатает: aDaDaDaD

&& Нечувствительный к регистру поиск;

&& proper-изменение регистра заменяющей строки "петр"

? Strtran("Иванов", "иван", "петр", -1, -1, 3) && Напечатает: Петров

&&

&& STUFF( )

? Stuff("Строка до", 8, 2, "после") && Напечатает: Строка после

&& Удаляются 2 последних символа (все начиная с 8-го и кончая последним)

? Stuff("Строка до", 8, 5, "") && Напечатает: Строка

&&

&& SUBSTR( )

? Substr("Это подстрока", 5) && Напечатает: подстрока

? Substr("Это подстрока", 5, 3) && Напечатает: под

&&

&& TEXTMERGE( )

set textmerge off

fi = Pi( ) / 4

text to someText noshow

Синус угла <<fi>> равен <<Sin(fi)>>

endText

? Textmerge(someText)

&& Напечатает: Синус угла 0,7854 равен 0,71

&&

&& TXTWIDTH( )

? Txtwidth('abcd') && Напечатает: 4.667

? Txtwidth('abcd', 'Times New Roman', 24, 'BI') && Напечатает: 4.769

&&

&& VAL( )

? 2 * Val('123') && Напечатает: 246.00

? 2 * Val('–123.45ABC') && Напечатает: –246.90

? Val('abc') && Напечатает: 0.00

&& Преобразование "строка-число" возможно и в том случае,

&& если в начале строки расположены символы '$', '+', '–' и '.'

? Val('$+.55') && Напечатает: 0.5500

Функция

STRCONV(cExpression, nConversionSetting [, nRegionalIdentifier [, nRegionalIDType]])

преобразовывает строку cExpression в строку указанного вида: 1-байтовую, 2-байтовую, UNICODE и др. или выполняет иное преобразование.

Возвращает преобразованную строку в качестве результата.

Параметры:

nConversionSetting – задает тип преобразования; описан в табл. 3.26.

Таблица 3.26

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