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


Функция Partition

Обновлен: Ноябрь 2007

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

Public Function Partition( _
   ByVal Number As Long, _ 
   ByVal Start As Long, _ 
   ByVal Stop As Long, _ 
   ByVal Interval As Long _
) As String

Параметры

  • Number
    Обязательный параметр. Long. Целое значение, которое нужно разместить в одном из вычисленных диапазонов.

  • Start
    Обязательный параметр. Long. Целое значение, которое обозначает начало набора вычисленных диапазонов. Start не может быть меньше 0.

  • Stop
    Обязательный параметр. Long. Целое число, указывающее конец набора вычисленных диапазонов. Значение Stop не может быть меньше или равно Start.

  • Interval
    Обязательный параметр. Long. Целое значение, которое обозначает размер каждого вычисленного диапазона между значениями Start и Stop. Interval не может быть меньше 1.

Исключения

Тип исключения

Номер ошибки

Условия

ArgumentException

5

Start < 0, Stop <= Start, или Interval < 1.

См. столбец "Номер ошибки", если выполняется обновление приложений Visual Basic 6.0, в которых используется неструктурированная обработка ошибок. (Можно сравнить номер ошибки с Свойство Number (объект Err).) Однако по возможности следует заменять такую систему управления ошибками на Обзор структурной обработки исключений в Visual Basic.

Заметки

Функция Partition вычисляет набор численных диапазонов, каждый из которых содержит количество значений, указанное в Interval. Первый диапазон начинается с Start, а последний диапазон завершается на Stop. Функция Partition идентифицирует в каком диапазоне содержится Number и возвращает строку, описывающую этот диапазон. Диапазон предоставляется строкой в виде "lowervalue:uppervalue", где нижняя граница диапазона (lowervalue) отделена от верхней границы (uppervalue) двоеточием (:).

При необходимости, функция Partition вставляет начальные пробелы перед границами нижнее_значение и верхнее_значение, чтобы оба значения содержали то же число знаков, что и строковое представление значения (Stop + 1). Это гарантирует, что при использовании результата функции Partition с несколькими значениями параметра Number, полученный текст будет правильно обрабатываться в процессе всех последующих операций сортировки.

Следующая таблица демонстрирует примеры строк для диапазонов, вычисленных с помощью трех наборов Start, Stop и Interval. Колонки "Первый диапазон" и "Последний диапазон" показывают возможные нижний и верхний диапазоны для данных значений Start и Stop. Столбцы "Перед первым диапазоном" и "После последнего диапазона" содержат строки, возвращаемые для значений Number, меньших, чем Start, и больших, чем Stop, соответственно.

Start

Stop

Interval

Перед первым диапазоном

Первый диапазон

Последний диапазон

После последнего диапазона

0

99

5

"   : -1"

"  0:  4"

" 95: 99"

"100:   "

20

199

10

"   : 19"

" 20: 29"

"190:199"

"200:   "

100

1010

20

"    : 99"

" 100: 119"

"1000:1010"

"1011:    "

В предыдущей таблице третья строка содержит результаты, когда параметры Start и Stop определяют набор чисел, которые не делятся без остатка на Interval. Последний диапазон заканчивается на Stop, в результате чего его длина равна только 11 числам, хотя Interval равен 20.

Если Interval равен 1, диапазон равен "Number: Number", независимо от аргументов Start и Stop. Например, если значение Number равно 267, Stop равно 1000, а Interval равно 1, Partition возвращает " 267: 267".

Partition может быть полезна при написании запросов к базам данных. Можно создать запрос SELECT, демонстрирующий количество заказов, попадающих в данный диапазон значений, к примеру со стоимостью между 1 и 1000, 1001 и 2000 и т. д.

Пример

В следующем примере задается серия диапазонов для декад от 1950 до 2049. Он находит значение year, соответствующее диапазону, и возвращает значение String, отображающее диапазон. Например, если year имеет значение 1984, Partition возвращает "1980:1989".

Dim year As Long = 1984
' Assume the value of year is provided by data or by user input.
Dim decade As String
decade = Partition(year, 1950, 2049, 10)
MsgBox("Year " & CStr(year) & " is in decade " & decade & ".")

Требования

Пространство имен: Microsoft.VisualBasic

**Модуль:**Interaction

**Сборка:**Visual Basic (библиотека времени выполнения, в Microsoft.VisualBasic.dll)

См. также

Ссылки

Члены библиотеки времени выполнения Visual Basic

Модуль Interaction (Visual Basic)