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

Преобразования transform( ) при опущенном cFormatCodes

Тип eExpression

Преобразования

Blob

Возвращает строку, представляющую двоичную величину без префикса 0h, например:

? Transform(0hFE0AF2) && Напечатает: FE0AF2

Двоичные величины не воспринимают форматные коды, кроме ограничения по длине. Например, каждая из трех следующих функций вернет строку "FE0A":

Transform(0hFE0AF2, "XXXX") Transform(0hFE0AF2, "9999") Transform(0hFE0AF2, "####")

Максимальная длина результата с такими форматными кодами – 255 символов

Character

Не выполняется

Currency

Определяется настройками вкладки Regional диалогового окна Options

Date

DTOC( )

DateTime

TTOC( )

General

Возвращает "Gen", если general-поле содержит объект, или "gen" – в противном случае

Logical

Возвращает в зависимости от значения eExpression ".T." или ".F."

Memo

Не выполняется

Numeric (Double, Float, Integer)

Число в строку. Если десятичная часть числа eExpression состоит целиком из нулей, то они и десятичная точка удаляются из результата, например:

? Transform(123.000) && Напечатает: 123

Если 0 < ABS(eExpression) < 1 и нуль отсутствует перед десятичной точкой, то он будет добавлен к результату, например:

? Transform(–.123) && Напечатает: –0.123

? Transform(.123) && Напечатает: 0.123

Object

Возвращает "(Object)"

Varbinary

То же, что и для типа Blob

Замечание. Использование TRANSFORM( ) с большими отрицательными числами, содержащими десятичную часть, может привести к переполнению. Взамен следует употреблять функцию STR( ).

Строка cFormatCodes может содержать приведенные в табл. 4.5 и 4.6 функциональные и картинные коды. Правила их употребления описаны в разд. 4.1.2.2 при рассмотрении опции PICTURE команды ?.

Если число, записываемое в поле таблицы типа Numeric, имеет больше десятичных знаков, чем это задано для поля, то VFP:

  • отбрасывает лишние десятичные знаки, округляя оставшееся число;

  • если значение вновь слишком велико, выполняет попытку записать его в научном формате;

  • если значение по-прежнему слишком велико, записывает в поле звездочки.

Примеры.

set currency to " руб."

set currency right

set separator to ","

? Transform(12345.98, "@$ 999,999.99") && Напечатает: 12,345.98 руб.

? Transform("aaabbcc", "@R 999-99-99") && Напечатает: aaa-bb-cc

? Transform(_SCREEN) && Напечатает: (Object)

3.7.6. Кодовые страницы, поддерживаемые vfp

Кодовые страниц, используемые при работе с символьными данными, приведены в табл. 3.31.

Таблица 3.31

Кодовые страницы

Номер

Имя

Идентификатор

437

US MS DOS

x01

620*

Mazovia (Polish) MS-DOS

x69

737*

Greek MS-DOS (437G)

x6A

850

International MS DOS

x02

852

Eastern European MS-DOS

x64

857

Turkish MS-DOS

x6B

861

Icelandic MS-DOS

x67

865

Nordic MS-DOS

x66

866

Russian MS DOS

x65

874

Thai Windows

x7C

895*

Kamenicky (Czech) MS-DOS

x68

932

Japanese Windows

x7B

936

Chinese (PRC, Singapore) Windows

x7A

949

Korean Windows

x79

950

Chinese (Hong Kong SAR, Taiwan) Windows

x78

1250

Eastern European Windows

xC8

1251

Cyrillic (Russian Windows)

xC9

1252

Windows ANSI

x03

1253

Greek Windows

xCB

1254

Turkish Windows

xCA

1255

Hebrew Windows

x7D

1256

Arabic Windows

x7E

10000

Standard Macintosh

x04

10006

Greek Macintosh

x98

10007*

Russian Macintosh

x96

10029

Macintosh EE

x97

Страницы, отмеченные *, не распознаются, если в файле конфигурации Config.fpw записано

CODEPAGE = AUTO

Функция

GETCP([nCodePage] [, cText] [, cDialogTitle])

открывает диалог Code Page со списком кодовых страниц, поддерживаемых VFP. Возвращает номер выбранной кодовой страницы или 0, если кодовая страница не выбрана.

Кодовые страницы, отображаемые в диалоге, определяются в файле FoxPro.int.

Параметры:

nCodePage – номер выбираемой в диалоге Code Page страницы при его открытии. Если опущен или отрицателен, или равен нулю, то кодовая страница при открытии диалога не выбирается.

cText – текст, отображаемый над списком кодовых страниц.

cDialogTitle – заголовок диалога.

Функция может быть включена в команды APPEND FROM, COPY TO и др., имеющие опцию AS nCodePage.

Пример.

&& Диалог Code Page см. на рис. 3.3

cp = GetCP(1251, "Выбор кодовой страницы", "Демонстрация GETCP")

Рис. 3.3. Диалог выбора кодовой страницы

Используя этот диалог, можно задать кодовую страницу для таблиц, ее не имеющих, созданных в более ранних версиях FoxPro или при помощи иных программных продуктов. Таблица помечается выбранной в диалоге кодовой страницей.

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