Поделиться через


Строки MOF

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

В следующей таблице перечислены типы строковых данных для MOF.

Тип данных Тип автоматизации Описание
char16 VT_I2 Один 16-разрядный символ Юникода в формате универсального набора символов 2 (UCS-2)
строка VT_BSTR Строка символов Юникода

Используйте следующие рекомендации при написании строк для MOF:

  • Окружайте константы с одним символом с одними кавычками.

    Если одинарные кавычки не используются с константами одного символа, необходимо использовать целочисленное представление значения символа Юникода. При необходимости можно указать символ буквально с помощью последовательности \x escape из стандарта C Американского национального института стандартов (ANSI), как показано ниже.

    char16  TestChar1 = '\x4133';
    char16  Testchar2 = 'A';
    

    Так как MOF основан на Юникоде, можно также указать 16-разрядные значения.

    Помните, что константы с одним символом в формате ANSI C окружены двойными кавычками.

  • Окружите строки символов двойными кавычками.

    DTime    = "19940107140332.000000-300";
    
  • Сцепить последовательные строки кавычки с одним или несколькими пробелами.

    DString = "This" "becomes a long string";
    
  • Используйте escape-последовательность, начиная с обратной косой черты, чтобы внедрить кавычки в строку.

    DMyString = "This is an \"embedded quote\" example."
    

В следующем примере описывается, как инициализировать свойства строки и строковый параметр:

class  StringDataClass
{
    [key]  String    Dstring;
    DateTime         DTime;
    char16           CharVal1;
    char16           CharVal2;
    sint32 DiskMethod ([in, Id(0)] string Description = "Disk 1");
};

instance of StringDataClass
{
    Dstring = "this can go on for " " some time"
       " before it is complete";
    DTime    = "19940107140332.000000-300";
    CharVal1 = '\x16';
    CharVal2 = '\x32';
};