Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MB_REF_7.pdf
Скачиваний:
25
Добавлен:
13.02.2015
Размер:
2.96 Mб
Скачать

Оператор Get

Оператор Get

Назначение:

Читает данные из файла, открытого в бинарном режиме (BINARY) или в режиме произвольного доступа (RANDOM).

Синтаксис:

Get [#]filenum, [ position ], var_name

где

filenum – номер файла, открытого оператором Open File; position – позиция, с которой начинается чтение из файла; var_name – имя переменной.

Описание:

Оператор Get читает данные из файла, открытого оператором Open File, и помещает их в переменную var_name. Способ чтения оператором Get определяется режимом, в котором файл был открыт оператором Open File.

Если файл открыт в режиме произвольного доступа, то параметр position определяет строку данных, с которой начинается чтение. Сразу после открытия файла чтение можно производить из первой строки. По мере чтения оператором Get позиция считывания автоматически наращивается, и нет нужды каждый раз менять значение Position. Однако, если Вы хотите перейти не к следующей по порядку строке, то Вам придется явно задать значение Position.

Если файл открыт в режиме бинарного доступа, то одним оператором Get читается одно значение var_name. То, как читаются данные, зависит от порядка задания байтов в исходном файле и типа переменной var_name. Если переменная имеет тип Integer, то прочитываются 4 байта из двоичного файла и превращаются в переменную MapBasic. Переменные заполняются при чтении по следующим правилам:

Тип

Данные

Logical

Однобайтовое значение, или 0, или другое ненулевое число.

SmallInt

Двубайтовое значение, целое число.

Integer

Четырехбайтовое значение, целое число.

Float

Восьмибайтовое число в формате IEEE.

String

Длина строки плюс один байт для нулевого значения,

 

обозначающего конец строки.

Date

4 байта: SmallInt для года, один байт для месяца и один байт

 

для дня.

Другие типы

Чтение не производится.

Справочник MapBasic

269

Оператор Get

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

Воператоре Get нужно поставить две запятые, если параметр position опущен.

Если файл был открыт в режиме BINARY, оператор Get не может заполнять строку (переменную типа String) неопределенной длины; любая переменная типа String в операторе Get должна иметь определенную длину.

Смотрите также:

Open File, Put

270

Справочник MapBasic

Функция GetFolderPath$( )

Функция GetFolderPath$( )

Назначение

Возвращает путь к специальным папкам MapInfo или Windows.

Синтаксис

GetFolderPath$( folder_id )

folder_id индекс папки, может принимать одно из следующих значений:

FOLDER_MI_APPDATA

FOLDER_MI_LOCAL_APPDATA

FOLDER_MI_PREFERENCE

FOLDER_MI_COMMON_APPDATA

FOLDER_APPDATA

FOLDER_LOCAL_APPDATA

FOLDER_COMMON_APPDATA

FOLDER_COMMON_DOCS

FOLDER_MYDOCS

FOLDER_MYPICS

Возвращаемое значение

Строка

Описание

Получив индекс одной из определенных папок MapInfo или Windows, функция GetFolderPath$() возвращает путь к этой папке. Примером специальной папки Windows является папка My Documents. Примером специальной папки MapInfo является папка с настройками.

Расположение многих из этих папок варьирует в различных версиях Windows. Оно также может отличаться для отдельный пользователей. Обратите внимание, что FOLDER_MI_APPDATA, FOLDER_MI_LOCAL_APPDATA и FOLDER_MI_COMMON_APPDATA могут не существовать. Перед попыткой войти в одну из этих папок, убедитесь в их существовании, используя функцию FileExists(). Папка FOLDER_MI_PREFERENCE всегда существует.

Индексы папок в FOLDER_MI возвращают путь к папкам, указанным в MI Pro. Остальные индексы возвращают путь для папок Windows и соответствуют индексам, определенным для функции WIN32 API, а именно SHGetFolderPath. Самые общие из этих индексов определены для удобного использования в приложении MapBasic. Любые индескы id возможные для SHGetFolderPath будут работать и с функцией GetFolderPath$().

Пример

include "mapbasic.def" declare sub main

sub main

dim sMiPrfFile as string

sMiPrfFile = GetFolderPath$(FOLDER_MI_PREFERENCE) Print sMiPrfFile

end subet128

Справочник MapBasic

271

Функция GetFolderPath$( )

Смотрите также

LocateFiles( )

272

Справочник MapBasic

Функция GetMetadata$( )

Функция GetMetadata$( )

Назначение:

Извлекает из таблицы метаданные.

Синтаксис:

GetMetadata$( table_name, key_name )

где

table_name – имя открытой таблицы, заданое как недвусмысленное имя (например, World) или как строка (например, “World”);

key_name – строковая величина, представляющая собой имя ключа метаданных.

Величина, полученная в результате:

Величина типа String, строка длинной до 239 байт. Если ключ не существует или соответствующее значение пусто, то MapInfo вернет пустую строку.

Описание:

Эта функция возвращает метаданные из таблицы. Более подробное описание процесса извлечения метаданных из таблицы см. в описании оператора Metadata, а также в главе 7 Руководства пользователя MapBasic.

Пример:

Если в таблице PARCELS есть ключ метаданных “\Copyright”, то следующий оператор распечатывает соответствующее значение метаданных:

Print GetMetadata$(Parcels, ”\Copyright”)

Смотрите также:

Metadata

Справочник MapBasic

273

Функция GetSeamlessSheet( )

Функция GetSeamlessSheet( )

Назначение:

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

Синтаксис:

GetSeamlessSheet( table_name )

где table_name – имя открытой сшитой таблицы.

Величина, полученная в результате:

Строка. Величина типа String, представляющая собой имя таблицы (или пустую строку при отмене выбора пользователем).

Описание:

Эта функция показывает диалоговое окно со списком таблиц, составляющих сшитую таблицу. Если пользователь выбирет таблицу и нажмет на кнопку “OK”, то функция вернет имя выбранной таблицы. Если пользователь отменит диалог, то результатом будет пустая строка.

Пример:

Sub Browse_A_Table(ByVal s_tab_name As String)

Dim s_sheet As String

If TableInfo(s_tab_name, TAB_INFO_SEAMLESS) Then s_sheet = GetSeamlessSheet(s_tab_name)

If s_sheet <> ”” Then Browse * From s_sheet

End If Else

Browse * from s_tab_name End If

End Sub

Смотрите также:

Set Table, TableInfo( )

274

Справочник MapBasic

Оператор Global

Оператор Global

Назначение:

Объявляет имена и типы глобальных переменных.

Синтаксис:

Global var_name [, var_name ... ]

As var_type

[, var_name

... As var_type ... ]

где

var_name – имя глобальной переменной;

var_type – тип данных: Integer, Float, Date, Logical, String или тип, созданный при помощи оператора

Type.

Описание:

Оператор Global объявляет одну или более глобальных переменных. Оператор употребляется вне текста процедур и функций.

Синтаксис оператора Global такой же, как в операторе Dim. Отличает операторы смысл переменных: в операторе Dim объявляются локальные переменные, а в Global – глобальные переменные. Локальные переменные могут использоваться только в процедурах, в которых они объявлены. Значения глобальных переменных могут использоваться и изменяться во всех процедурах программы.

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

Размерность массива глобальных переменных может быть изменена при помощи оператора ReDim.

В Windows значения глобальных переменных выполняющейся программы доступны другим программам, поддерживающим DDE-связь.

Пример:

Declare Sub testing( ) Declare Sub Main( )

Global global_var As Integer Sub Main( )

Call testing

Note Str$(global_var) ' в окне будет число "23" End Sub

Sub testing( ) global_var = 23 End Sub

Смотрите также:

Dim, ReDim, Type, UBound( )

Справочник MapBasic

275

Оператор Goto

Оператор Goto

Назначение:

Передает управление программой оператору с меткой.

Предупреждение:

Оператор Goto не может выполняться в окне MapInfo.

Синтаксис:

Goto label

где

label – имя метки.

Описание:

Оператор Goto определяет безусловный переход выполнения программы. Выполнение продолжается с оператора, отмеченного меткой label. Метка в тексте программы представляет собой произвольное слово перед оператором, отделенное от оператора двоеточием и пробелом. В операторе Goto метка label пишется без двоеточия.

Оператор Goto не должен использоваться для выхода из цикла. Для этого используйте операторы

Exit Do и Exit For.

Оператор Goto осуществляет переход только в пределах одной процедуры.

Пример:

Goto endproc

...

endproc: End Program

Смотрите также:

Do, For, OnError, Resume

276

Справочник MapBasic

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