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

Описание параметра nFlag

Бит

Значение

Действие

0

1

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

1

2

Завершающий разделитель необязателен. Если таковой не обнаружен, то будет возвращена конечная часть строки cSearchExpression, начинающаяся с позиции cBeginDelim + 1

2

4

Включает разделители в возвращаемый результат

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

Примеры:

someString = 'AA aa, BB bb, CC cc: DD dd'

? Strextract(someString, ',', ':', 2) && Напечатает: CC cc

? Strextract(someString, ':', ':') && Напечатает пустую строку

&& Параметр nFlag = 2

? Strextract(someString, ':', ':', 1, 2) && Напечатает: DD dd

&& Тот же результат даст задание одного разделителя

? Strextract(someString, ':') && Напечатает: DD dd

? Strextract(someString, 'b', 'c') && Напечатает: b, CC

&& Параметр nFlag = 1

? Strextract(someString, 'b', 'c', 1, 1) && Напечатает: B bb,

&& Параметр nFlag = 3 (первый и второй бит параметра содержат 1)

? Strextract(someString, 'd', 'e', 1, 3) && Напечатает: D dd

Функция

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

записывает строку cExpression в файл cFileName.

Параметры:

cFileName – имя файла, в который записывается строка. Может включать путь. Если файл с указанным именем не существует, то он будет автоматически создан VFP.

lAdditive – строка добавляется в конец файла, если параметр равен .T.; в противном случае файл перезаписывается. Если SET SAFETY установлен в ON и файл существует, то будет задан вопрос о необходимости перезаписи файла. Если SET SAFETY установлен в OFF, то файл перезаписывается без предупреждения. Параметр оставлен для совместимости с прежними версиями.

nFlag – 4-битовый флаг записи. Может быть, в частности, начиная с версии VFP 7 использован вместо lAdditive. Оказывает описанное в табл. 3.29 влияние.

Таблица 3.29

Описание параметра nFlag

nFlag

Бит

Действие

0

0000

Действует по умолчанию. Существующий файл перезаписывается (тот же эффект имеет задание lAdditive = .F.)

1

0001

Строка добавляется в конец файла (как и при lAdditive = .T.)

2

0010

В начало файла записывается FF FE – маска Unicode Byte Order Mark (BOM); cExpression воспринимается как UNICODE-строка и не подвергается преобразованиям (в файле сохраняется внутреннее представление строки). Файл перезаписывается

4

0100

В начало файла записывается EF BB BF – маска UTF-8 BOM; cExpression воспринимается как UTF-8-строка и не подвергается преобразованиям. Файл перезаписывается

Значения nFlag равные 3 и 5 недопустимы: нельзя добавлять в существующий файл UTF-8 или UNICODE-строки.

Функция STRTOFILE( ) открывает файл в режиме разделяемого доступа. В предыдущих версия эта функция открывала файл монопольно.

Пример:

someString = 'Строка, переносимая в файл d:\a.txt как UNICODE-строка'

Strtofile(someString, 'd:\a.txt', 2)

Файл d:\a.txt, открытый в Word как Кириллица Windows:

яюСтрока, переносимая в файл d:\a.txt как UNICODE-строка

Функция

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

возвращает контрольную сумму строки cExpression.

Тип возвращаемого результата – Character.

Позволяет генерировать для больших строк контрольные суммы, превышающие 16-битные. Контрольная сумма может быть использована для проверки достоверности данных, сравнения двух строк.

Замечание. Дополнительные возможности предоставляет функция SYS(2017), генерирующая контрольную сумму, основанную на текущей записи.

Параметры:

nSeed – затравка, используемая при вычислении контрольной суммы. Параметр оставлен для совместимости с прежними версиями. Если nSeed = –1, то берется заданное по умолчанию значение затравки. При употреблении алгоритма CRC32 значение nSeed игнорируется.

nFlags – принимает значение 0 или 1. Если опущен или равен 0, то при вычислении контрольной суммы используется алгоритм CRC16, в противном случае употребляется алгоритм CRC32.

Функция

TRANSFORM(eExpression [, cFormatCodes])

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

Если параметр cFormatCodes опущен, то преобразование eExpression с символьную строку выполняется в соответствии с табл. 3.30.

Таблица 3.30

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