Функция 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.
Исключения
Тип исключения |
Номер ошибки |
Условия |
---|---|---|
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)