Команды и функции для кодовых страниц VFP
« Назад Команда SET NOCPTRANS TO [FieldName1 [, FieldName2 ...]]предотвращает изменение кодовой страницы полей, указанных параметром [FieldName1 [, FieldName2 ...]], открытой таблицы. Поля типа Character (binary) и Memo (binary) в списке полей SET NOCPTRANS указывать не имеет смысла: кодовая страница данных этих полей не меняется по определению. Команда SET NOCPTRANS TO, вызванная без списка полей, восстанавливает заданный по умолчанию опцией CODEPAGE файла конфигурации вариант изменения кодовой страницы полей. Команда SET CPCOMPILE TO [nCodePage]устанавливает кодовую страницу nCodePage компилируемым программам. Команда SET CPDIALOG ON | OFFуправляет появлением диалога Code Page. Диалог появляется, если монопольно открывается таблица с неопределенной кодовой страницей и SET CPDIALOG установлен в ON. Такая установка команды применяется при разработке приложения; после завершения разработки SET CPDIALOG следует установить в OFF. Установкой SET CPDIALOG можно также управлять и на вкладке Data диалогового окна Options меню Tools, манипулируя флажком Prompt for code page. В табл. 3.32 рассмотрены функции, применяемые при работе с кодовыми страницами. Таблица 3.32
Функции для кодовых страниц
Пример для SYS(2300). if CPCurrent( ) = 1251 then && Запоминаем текущую кодовую страницу currentCollate = Set("COLLATE") set collate to "RUSSIAN" if Sys(2300, 1251) = "0" then && Операция сравнения выполняется с ошибкой ? "F" = "f" && Напечатает: .T. && Добавляем кодовую страницу 1251 в список ПНЯ Sys(2300, 1251, 1) && Операция сравнения выполняется корректно ? "F" = "f" && Напечатает: .F. && Удаляем кодовую страницу 1251 из списка ПНЯ Sys(2300, 1251, 0) endif && Восстанавливаем прежнюю collate-последовательность set collate to currentCollate else MessageBox("Пример показателен, когда установлена кодовая страница 1251!") endif |