поиск:
Полезные ссылки

  • Форум по MySQL

  • Статьи по MySQL

  • Вопросы по MySQL

  • MySQL.com


  • Базы данных

  • MySQL

  • PostgreSQL


  • PHP конференция 2005
    Подробности!

    4.6.4. Массивы определения символов

    Простые массивы to_lower[] и to_upper[] содержат символы верхнего и нижнего регистров, соответствующие каждому из символов набора. Например:

    to_lower['A'] should contain 'a'
    to_upper['a'] should contain 'A'
    

    sort_order[] - карта, устанавливающая правила упорядочивания символов для сравнения и сортировки. Во многих наборах символов эта таблица совпадает с to_upper[] (благодаря чему при сортировке регистр символов не учитывается). MySQL сортирует символы в соответствии со значением sort_order[символ]. Более сложные правила упорядочивания строк разъясняются ниже. See Раздел 4.6.5, «Поддержка упорядочивания строк».

    ctype[] представляет собой массив битов, по одному элементу на каждый из символов. (Массивы to_lower[], to_upper[], и sort_order[] индексируются по значению символа, а ctype[] - по значению символа + 1. Это позволяет обрабатывать символы EOF).

    В файле m_ctype.h приведены следующие определения битовых масок:

    #define _U 01 /* верхний регистр */
    #define _L 02 /* нижний регистр */
    #define _N 04 /* число (цифра) */
    #define _S 010 /* символ пробела */
    #define _P 020 /* знак пунктуации */
    #define _C 040 /* управляющий символ */
    #define _B 0100 /* пустой символ */
    #define _X 0200 /* шестнадцатеричная цифра */
    

    Значение ctype[] для каждого из символов должно представлять собой объединение значений битовых масок, описывающих символ. Например, 'A' представят собой символ верхнего регистра (_U) а также шестнадцатеричную цифру (_X), поэтому элемент ['A'+1] должен содержать значение:

    _U + _X = 01 + 0200 = 0201
    
     
    © 1997-2005 PHP Club Team
    Rambler's Top100