Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

MI6UGRU

.pdf
Скачиваний:
16
Добавлен:
13.02.2015
Размер:
14.71 Mб
Скачать

 

 

Приложение D: Создание выражений

 

 

 

 

 

 

“sq km”

квадратные километры

 

 

 

 

 

 

 

“sq in”

квадратные дюймы

 

 

 

 

 

 

 

“sq ft”

квадратные футы

 

 

 

 

 

 

 

 

“sq survey ft”

квадратные топографические футы

 

 

 

 

 

 

 

“sq yd”

квадратные ярды

 

 

 

 

 

 

 

“sq mm”

квадратные миллиметры

 

 

 

 

 

 

 

 

“sq cm”

квадратные миллиметры

 

 

 

 

 

 

 

 

“sq m”

квадратные метры

 

 

 

 

 

 

 

 

“sq ch”

квадратные чейны

 

 

 

 

 

 

 

 

“sq li”

квадратные линки

 

 

 

 

 

 

 

 

“sq rd”

квадратные родсы

 

 

 

 

 

 

 

 

“perch”

перчи

 

 

 

 

 

 

 

 

“rood”

родсы

 

 

 

 

 

 

 

 

“acre”

àêðû

 

 

 

 

 

 

 

 

“hectare”

гектары

 

 

 

 

 

 

 

Примеры: Чтобы выбрать все строки таблицы, соответствующие объектам с площадью более, чем 59 квадратных километров:

63.Area(obj,"sq km")>59

Чтобы выбрать все строки таблицы, соответствующие объектам с плотностью населения менее 250 человек на квадратный километр:

64.НАСЕЛЕНИЕ/Area(obj,"sq km")<250

Вычисление плотности населения в объекте:

65.НАСЕЛЕНИЕ/Area(obj,"sq km")

Если Вы хотите получить площадь в гектарах:

66.Area(obj,"hectare")

Если Вы хотите получить площадь в квадратных милях:

67.Area(obj,"sq mi")

CentroidX

Синтаксис: CentroidX(obj)

Результат: Возвращает координату X центроида объекта, которая является значением долготы на картах мира. Центроид – это центр минимального прямоугольника, описывающего заданный объект. Для таких областей, как штат Флорида, центр подобного прямоугольника не будет лежать вне области.

657

Приложение D: Создание выражений

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

Примеры: Выбрать все объекты к западу от Нью-Йорка, расположенного на долготе -73.997890 и широте 40.750450:

68.CentroidX(obj)<-73.997890

Выбрать все объекты к востоку от Нью-Йорка, расположенного на долготе -73.997890 и широте 40.750450:

69.CentroidX(obj)>-73.997890

Выбрать все объекты к северо-востоку от Нью-Йорка:

70. CentroidX(obj)>-73.997890 and CentroidY(obj)>40.750450

Первое предложение этого выражения выбирает объекты к востоку от Нью-Йорка, а второе – к северу от Нью-Йорка. Так как предложения соединены оператором “and”, то объект должен удовлетворять обоим условиям.

Выбрать все объекты к северу или востоку от Нью-Йорка:

71. CentroidX(obj)>-73.997890 or CentroidY(obj)>40.750450

Первое предложение этого выражения выбирает объекты к востоку от Нью-Йорка, а второе – к северу от него. Так как предложения соединены оператором “or”, объект должен удовлетворять хотя бы одному из условий.

CentroidY

Синтаксис: CentroidY(obj)

Результат: Возвращает координату Y центроида объекта, которая является значением широты на мировой карте.

Возвращается значение в десятичных градусах, если координаты представляют широту и долготу. В противном случае значение вычисляется в единицах, указанных для таблицы.

Примеры: Выбрать все объекты к северу от Нью-Йорка, расположенного на долготе -73.997890 и широте 40.750450:

72.CentroidY(obj)>40.750450

Выбрать все объекты к югу от Нью-Йорка на долготе -73.997890 и широте 40.750450:

73.CentroidY(obj)<40.750450

См. также описание и примеры функции CentroidX.

Chr$

Синтаксис: Chr$(числовое_выражение)

658

Приложение D: Создание выражений

Результат: Chr$ представляет значение числового выражения в виде ANSI-символа, код которого соответствует значению выражения. Поэтому значение

числового_выражения должно попадать в диапазон от 0 до 255.

Пример: Если Вам может понадобиться выводить на экран подписи в две строки, то с помощью функции Chr$ можно вставить символ перевода строки в текст подписи. ANSI-значение этого символа равно 13. Пусть в первой строке надписи Вы хотите вывести название области, а во второй – численность населения. Такой результат можно получить, создав выражение для подписи:

74.Proper$(Область)+Chr$(13)+Население

Cos

Синтаксис: Cos(числовое_выражение)

Результат: Функция Cos возвращает косинус от значения числового выражения, обозначающего угол в радианах.

CurDate

Синтаксис: CurDate()

Результат: Возвращает текущую дату.

Примеры: Внесение текущей даты в одну из колонок:

75.CurDate()

Функция может также использоваться в сочетании с командой ОБНОВИТЬ КОЛОНКУ, когда нужно внести в колонку текущую дату.

Выбрать все записи о поступлениях, принятых 30 и более дней назад:

76.Поступило <= CurDate()-30

Day

Синтаксис: Day(ïîëå_äàòû)

Результат: Возвращает число в месяце по заданной дате. Число представляется целым значением от 1 до 31.

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

77.Day(date)=1

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

78.Weekday(date)=6 and Day(date)<>13

Это выражение состоит из двух предложений. Первое использует функцию Weekday для выбора записей, в которых день недели равен пятнице. Второе предложение использует функцию Day для выбора записей, в которых число не равно (<>) 13. Так как эти предложения связаны ключевым словом “and”, то запись должна удовлетворять обоим условиям, чтобы попасть в выборку.

659

Приложение D: Создание выражений

Distance

Синтаксис: Distance(x1, y1, x2, y2, единицы_измерения)

x1 и y1 – координаты восток-запад (долгота) на карте мира x2 и y2 – координаты север-юг (широта) на карте мира единицы_измерения – текущие единицы измерения длины

Результат: Функция вычисляет расстояние между двумя точками.

Когда Вы выбираете Distance в списке функций, в окне выражения появляются скобки с ключевым словом “obj” и текущими единицами длины в двойных кавычках. При составлении выражений обычно предлагается использовать мили (mi). Если вы хотите вычислить расстояние в других единицах, укажите эти единицы в кавычках.

Допускаются следующие единицы измерения длины:

Название

Единицы измерения

 

 

“mi”

ìèëè

 

 

“km”

километры

 

 

“in”

дюймы

 

 

“ft”

ôóòû

 

 

“survey ft”

топографические футы

 

 

“li”

линки

 

 

“rd”

кодсы

 

 

“ch”

чейны

 

 

“yd”

ÿðäû

 

 

“mm”

миллиметры

 

 

“cm”

сантиметры

 

 

“m”

метры

 

 

“nmi”

морские мили (1 морская миля

 

равна 1852 метрам)

 

 

Примеры: Вычисление расстояния между некоторым объектом и Нью-Йорком, расположенным на долготе -73.997890 и широте 40.750450:

79. Distance(-73.997890, 40.750450, CentroidX(obj),

CentroidY(obj),"mi")

Выбрать все объекты, удаленные не более, чем на 20 миль к западу от Нью-Йорка:

80. CentroidX(obj)<-73.997890 and Distance(-73.997890, 40.750450,

CentroidX(obj), CentroidY(obj),"mi")<=20

Это выражение состоит из двух предложений. Первое определяет, что объект должен

лежать к западу от Нью-Йорка. Второе предложение задает ограничение на

660

Приложение D: Создание выражений

расстояние: не более 20 миль. Так как эти предложения связаны оператором “and”, то объект должен удовлетворять им обоим, чтобы попасть в выборку.

Format$

Синтаксис: Format$ ( числовое_выражение , шаблон )

Шаблон – это строка, задающая формат результата, возвращаемого функцией.

Результат: Выдает строковое представление значения числового_выражения.

Примеры: Функция Format$( ) возвращает строку символов, содержащую форматированную строковую запись числа (значения первого параметра). Шаблон форматирования снабжает число символами (например, $, %, точка, запятая), которые делают результирующую строку более читаемой. Например, число 12345.67 Вы можете с помощью Format$( ) представить строкой вида $12345.67.

Первый параметр функции Format$( ) – числовое выражение – определяет значение, которое надо представить строкой. Шаблон – это строка кодовых символов, которую Вам следует задать для получения желаемого формата строки. Строка шаблона должна состоять из одного или нескольких специальных символов форматирования, таких как

# , 0, %, запятая, точка или точка с запятой; эти символы определяют конкретный вид строкового представления. Строка шаблона может также содержать символы, которые добавляются к строковому представлению числа, например, знак доллара, минус или скобки. Символы форматирования описываются в следующей таблице.

компоне

 

íòà

Действие при форматировании:

шаблона

 

 

 

#

Заменяется на один или более символов строки, представляющей значение

 

числа. Однако, если шаблон содержит один или несколько символов #

 

слева от десятичной точки, и значение лежит в границах между 0 и 1, то

 

результат форматирования может не иметь символа 0 перед десятичной

 

точкой.

 

 

0

Заменяются, подобно #, на символы строки, представляющей значение

 

числа. Однако, если шаблон содержит один или несколько символов 0

 

слева от десятичной точки, и значение лежит в границах между 0 и 1, то в

 

результирующей строке символ 0 будет стоять перед десятичной точкой.

 

 

.

Используется в комбинации с символом #. Если в шаблоне имеется точка,

 

то число символов # справа от точки задает количество десятичных знаков

 

после запятой в отформатированной строке.

 

 

,

Если точка стоит перед первым символом #, то в отформатированной

 

строке запятая разделяет каждые три цифры до десятичной точки.

 

Например, миллион будет иметь вид "1,000,000", а не "1000000".

 

 

%

Значение, представляемое в виде строки, умножается на 100; например,

 

для параметра 0.75 будет сформирована строка "75%". Если Вы хотите

 

вывести знак процента, не умножая параметр на 100, поставьте обратную

 

черту ( \ ) перед знаком процента.

 

 

661

Приложение D: Создание выражений

E+

Число представляется в экспоненциальной форме; например, для значения

 

1234 будет сформирована строка "1.234e+03". Если экспонента

 

положительна, то после "e" ставится знак плюс, а если отрицательна (для

 

дробных чисел) – знак минус.

 

 

E–

Действие то же, что и у "E+", только не выводится знак плюс после "e".

;Поместив в шаблоне точку с запятой, Вы можете задать отдельно форматы для положительных и отрицательных чисел. Перед знаком ";" указывается формат для положительных значений, а после него – для отрицательных.

При наличии двух форматов знак минус не ставится автоматически перед отрицательными числами. Для того, чтобы знак присутствовал, надо явно вставить символ "-" в строку формата для отрицательных значений.

-Когда шаблон строки включает в себя и положительные и отрицательные форматы, результат не будет автоматически включать знак минус. Когда Вы хотите включить знак минус в результат, надо включить символ “–” во вторую часть набора символов. Смотрите пример ниже в таблице.

\Над символами, указанными после этого символа, MapBasic не производит никаких действий. Это позволяет Вам указывать символы вроде "%" в строке шаблона, но не изменять этим значение числового параметра

Ниже приводится таблица, в левой колонке которой приведены примеры шаблонов для функции Format$( ), в средней – примеры значений числового параметра, а в правой колонке – результат функции Format$( ) в виде отформатированной строки.

Шаблон

Исходное число

Результат Format$( ):

 

 

 

“,#”

12345

”12,345”

 

 

 

“,#”

–12345

”–12,345”

 

 

 

“$#”

12345

”$12345”

 

 

 

“$#”

–12345

”–$12345”

 

 

 

“$,#”

12345

”$12,345”

 

 

 

“$,#”

–12345

”–$12,345”

 

 

 

“$,#.##”

12345.678

”$12,345.68”

 

 

 

“$,#.##”

–12345.678

”–$12,345.68”

 

 

 

“$,#.##;($,#.##)”

12345.678

”$12,345.68”

 

 

 

“$,#.##;($,#.##)”

–12345.678

”($12,345.68)”

 

 

 

“,#.###”

12345.6789

”12,345.679”

 

 

 

“,#.#”

12345.6789

”12,345.7”

 

 

 

“#.#”

12345.6789

”12345.7”

 

 

 

“#.###E+##”

12345.6789

”1.235e+04”

 

 

 

662

 

 

 

Приложение D: Создание выражений

 

 

 

 

 

 

 

 

“#.###E+##”

–12345.6789

 

”–1.235e+04”

 

 

 

 

 

 

 

 

“#.###E+##”

0.054321

 

”5.432e–02”

 

 

 

 

 

 

 

 

“#.###E–##”

12345.6789

 

”1.235e04”

 

 

 

 

 

 

 

 

“#.###E–##”

0.054321

 

”5.432e–02”

 

 

 

 

 

 

 

 

“#%”

0.054321

 

”5%”

 

 

 

 

 

 

 

 

“#.##%”

0.054321

 

”5.43%”

 

 

 

 

 

 

 

 

“#.##\%”

0.054321

 

”.05%”

 

 

 

 

 

 

 

 

“0.##\%”

0.054321

 

”0.05%”

 

 

 

 

 

 

 

 

InStr

Результат: InStr проверяет, содержит ли заданная строка указанную подстроку. MapInfo ищет подстроку, начиная с символа строки с номером номер_позиции. Åñëè

номер_позиции равен 1, то MapInfo начинает поиск с начала строки. Если же он равен, скажем, 6, то MapInfo начинает поиск с шестого символа строки.

Если в строке найдена искомая подстрока, то InStr возвращает номер позиции, с которой начинается подстрока. Если в строке нет заданной подстроки, InStr возвратит 0.

Пример: Вы готовитесь нанести на карту города банки. Для этого нужно найти все строки, содержащие подстроку “Банк” в колонке Название. Слово “Банк” может быть как отдельным словом в названии, так и сливаться с другими словами. Вы также не уверены, что слово “Банк” написано везде большими буквами. Поэтому Вы составляете выражение:

81.InStr(1,UCase$(Название),"БАНК")>0

Это выражение задает поиск строки “БАНК” в колонке Название. Выбираются все записи, содержащие эту строку.

Например, если данные выглядят так:

“This is a test of the insert function.”

Вам надо найти позицию слова “test.” Функция INSTR будет выглядеть так:

INSTR(1,”This is a test of the insert function”,”test”)

Когда оператор выполнен, будет возвращено число 11.

Внимание: Если строка, которую Вы ищете, не существует, то возвращается значение 0.

663

Приложение D: Создание выражений

Int

Синтаксис: Int(числовое_выражение)

Результат: Возвращает ближайшее целое число, которое не превосходит значение числового_выражения.

Примеры: Таблица показывает, как функция Int обрабатывает разные значения:

Число

Int(Number)

 

 

5.2

5

 

 

5.999

5

 

 

–7.8

–8

 

 

–7.2

–8

 

 

LCase$

Синтаксис: LCase$(строка)

Результат: Возвращает строку, в которой все большие буквы заменены на маленькие.

Примеры: Рассмотрим выражение:

82.LCase$(City)

Таблица показывает, как функция преобразует входные строки:

Исходная строка

Результат

 

 

NEW YORK

new york

 

 

New yorK

new york

 

 

new york

new york

 

 

Left$

Результат: Возвращает строку, состоящую из заданного числа самых левых символов

строки.

Примеры: Рассмотрим выражение:

83.Left$(City,5)

Таблица показывает, как функция преобразует входные строки:

Исходная строка

Результат

 

 

New York

New Y

 

 

Denver

Denve

 

 

Singapore

Singa

 

 

Теперь рассмотрим выражение, где Телефон – это колонка, содержащая телефонные номера, начинающиеся с кодов городов:

664

Приложение D: Создание выражений

84.Left$(Телефон,3)="404"

Это выражение выбирает все строки таблицы, поле номера телефона в которых начинается на “404”. Обратите внимание, что колонка Телефон содержит строки, поэтому 404 должно быть заключено в двойные кавычки.

Len

Синтаксис: Len(строка)

Результат: Возвращает количество символов в строке.

LTrim$

Синтаксис: LTrim$(строка)

Результат: LTrim$ удаляет все пустые символы (пробелы, табуляторы и так далее) из начала строки.

Maximum

Синтаксис: Maximum(числовое_выражение, числовое_выражение)

Результат: Maximum возвращает большее из двух значений.

Пример: Чтобы выяснить максимальный номер дома для отрезка улицы в файле

StreetInfo:

85.Maximum(ToLeft,ToRight)

Колонка ToLeft содержит наибольший номер по левой стороне улицы, а ToRight – по правой стороне данного отрезка.

Mid$

Синтаксис: Mid$(строка, номер_позиции, длина)

где строка – это символьное выражение; номер_позиции – целое число, определяющее начальную позицию в строке;

длина – целое число, задающее число символов, которые следует выделить.

Результат: Mid$ возвращает строку заданной длины, начиная с некоторого номера позиции в исходной строке.

Примеры: Рассмотрим следующее выражение:

86.Mid$(City,5,4)

Таблица показывает, как функция преобразует входные строки:

Исходная строка

Результат

 

 

New York City

York

 

 

Denver

er

 

 

Singapore

apor

 

 

Заметьте, что из строки “Denver” выделено только 2 символа. Это произошло потому, что "Denver” – слишком короткая строка, и не имеет полной 4-символьной подстроки, начинающейся с пятой позиции.

665

Приложение D: Создание выражений

Minimum

Синтаксис: Minimum(числовое_выражение, числовое_выражение)

Результат: Minimum возвращает меньшее из двух значений.

Примеры: Чтобы выяснить минимальный номер дома для отрезка улицы в файле

StreetInfo:

87.Minimum(FromLeft,FromRight)

Колонка FromLeft содержит наибольший номер по левой стороне улицы, а FromRight

по правой стороне данного сегмента.

Month

Синтаксис: Month(äàòà)

Результат: Возвращает номер месяца в виде числа от 1 до 12.

Примеры: Чтобы выбрать все записи, относящиеся к августу:

88.Month(Доставлено)=8

Чтобы выбрать все записи, полученные до августа:

89.Month(Доставлено)<8

Чтобы выбрать все записи, относящиеся к августу 1990:

90.Month(Доставлено)=8 and Year(Доставлено)=1990

Это выражение состоит из двух предложений. Первое указывает, что запись должна относиться к августу, а второе – что она должна относиться к 1990 году. Так как эти предложения связаны оператором “and”, то запись должна удовлетворять обоим условиям, чтобы попасть в выборку.

Выбор всех записей от августа или сентября:

91.Month(Доставлено)=8 or Month(Доставлено)=9

то выражение состоит из двух предложений. Первое указывает, что запись может относиться к августу, а второе – что она может относиться к сентябрю. Так как эти предложения связаны оператором “or”, то запись может удовлетворять хотя бы одному из условий, чтобы попасть в выборку.

Выбор всех записей от августа или сентября:

92.Month(Доставлено)=any(8,9)

Это выражение дает тот же результат, что и пример 24, но оно использует ключевое слово “any”.

Выбор всех записей от августа или сентября 1990 года:

93.Month(Доставлено)=any(8,9) and Year(Доставлено)=1990

666

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]