- •Оператор Add Column
- •Оператор Add Map
- •Оператор Alter Button
- •Оператор Alter ButtonPad
- •Оператор Alter Cartographic Frame
- •Оператор Alter Control
- •Оператор Alter MapInfoDialog
- •Оператор Alter Menu
- •Оператор Alter Menu Bar
- •Оператор Alter Menu Item
- •Оператор Alter Object
- •Оператор Alter Table
- •Оператор AutoLabel
- •Оператор Beep
- •Оператор Browse
- •Предложение Brush
- •Функция ButtonPadInfo( )
- •Оператор Call
- •Функция•CartesianArea( )
- •Функция CartesianBuffer( )
- •Функция CartesianDistance ( )
- •Функция CartesianObjectLen( )
- •Функция CartesianPerimeter( )
- •Функция Centroid( )
- •Предложение CharSet
- •Функция ChooseProjection$()
- •Оператор Close All
- •Оператор Close File
- •Оператор Close Table
- •Оператор Close Window
- •Функция CommandInfo()
- •Оператор Commit Table
- •Оператор Continue
- •Предложения Control Button / OKButton / CancelButton
- •Предложение Control CheckBox
- •Предложение Control EditText
- •Предложение Control GroupBox
- •Предложения Control ListBox / MultiListBox
- •Предложение Control PopupMenu
- •Предложение Control RadioGroup
- •Предложение Control StaticText
- •Функция ConvexHull( )
- •Предложение CoordSys
- •Оператор Create Arc
- •Оператор Create ButtonPad
- •Оператор Create ButtonPads As Default
- •Оператор Create Cartographic Legend
- •Функция CreateCircle( )
- •Оператор Create Ellipse
- •Оператор Create Frame
- •Оператор Create Grid
- •Оператор Create Index
- •Оператор Create Legend
- •Оператор Create Line
- •Оператор Create Map
- •Оператор Create Map3D
- •Оператор Create Menu
- •Оператор Create Menu Bar
- •Оператор Create Object
- •Оператор Create Pline
- •Оператор Create Point
- •Оператор Create Ranges
- •Оператор Create Rect
- •Оператор Create Redistricter
- •Оператор Create Region
- •Оператор Create Report From Table
- •Оператор Create RoundRect
- •Оператор Create Styles
- •Оператор Create Table
- •Оператор Create Text
- •Функция CreateText( )
- •Функция DateWindow( )
- •Оператор DDEExecute
- •Оператор DDEPoke
- •Оператор DDETerminate
- •Оператор DDETerminateAll
- •Оператор Declare Function
- •Оператор Declare Sub
- •Оператор Define
- •Оператор Delete
- •Оператор Dialog
- •Оператор Dialog Preserve
- •Оператор Dialog Remove
- •Оператор Dim
- •Оператор Do Case...End Case
- •Оператор Do...Loop
- •Оператор Drop Index
- •Оператор Drop Map
- •Оператор Drop Table
- •Оператор End MapInfo
- •Оператор End Program
- •Процедура EndHandler
- •Оператор Error
- •Оператор Exit Do
- •Оператор Exit For
- •Оператор Exit Function
- •Оператор Exit Sub
- •Оператор Export
- •Оператор Fetch
- •Оператор Find
- •Оператор Find Using
- •Предложение Font
- •Оператор For...Next
- •Процедура ForegroundTaskSwitchHandler
- •Функция FormatDate$
- •Оператор Function...End Function
- •Оператор Get
- •Оператор Global
- •Оператор Goto
- •Оператор Graph
- •Оператор If...Then
- •Оператор Import
- •Оператор Include
- •Оператор Input #
- •Оператор Insert
- •Функция Int( )
- •Функция IsPenWidthPixels()
- •Оператор Kill
- •Функция LabelFindByID( )
- •Функция LabelFindNext( )
- •Функция Labelinfo( )
- •Оператор Layout
- •Функция LegendFrameInfo( )
- •Функция LegendInfo( )
- •Функция LegendStyleInfo( )
- •Оператор Line Input
- •Процедура Main
- •Функция MakeCustomSymbol( )
- •Функция MakeFontSymbol( )
- •Оператор Map
- •Функция Map3dInfo( )
- •Оператор Menu Bar
- •Функция MenuitemInfoByID( )
- •Оператор Metadata
- •Оператор Note
- •Функция NumAllWindows( )
- •Оператор Objects Check
- •Оператор Objects Combine
- •Оператор Objects Enclose
- •Оператор Objects Erase
- •Оператор Objects Intersect
- •Оператор Objects Overlay
- •Оператор Objects Split
- •Оператор OnError
- •Оператор Open File
- •Оператор Open Report
- •Оператор Open Table
- •Оператор Open Window
- •Оператор Pack Table
- •Предложение Pen
- •Функция PenPattern()
- •Функция PenWidthToPoints()
- •Функция PointsToPenWidth()
- •Оператор Print
- •Оператор Print #
- •Оператор PrintWin
- •Оператор ProgressBar
- •Оператор Put
- •Оператор Randomize
- •Оператор ReDim
- •Оператор Register Table
- •Оператор Reload Symbols
- •Процедура RemoteMapGenHandler
- •Процедура RemoteMsgHandler
- •Оператор Remove Cartographic Frame
- •Оператор Remove Map
- •Оператор Rename File
- •Оператор Rename Table
- •Оператор Reproject
- •Оператор Resume
- •Оператор Rollback
- •Оператор Run Application
- •Оператор Run Command
- •Оператор Run Menu Command
- •Оператор Run Program
- •Оператор Save File
- •Оператор Save Window
- •Оператор Save Workspace
- •Оператор Seek
- •Процедура SelChangedHandler
- •Оператор Select
- •Оператор Server Begin Transaction
- •Оператор Server Bind Column
- •Оператор Server Close
- •Функция Server_ColumnInfo( )
- •Оператор Server Commit
- •Функция Server_Connect( )
- •Оператор Server Create Map
- •Оператор Server Disconnect
- •Функция Server_DriverInfo( )
- •Функция Server_EOT( )
- •Функция Server_Execute( )
- •Оператор Server Fetch
- •Функция Server_GetodbcHConn( )
- •Функция Server_GetodbcHStmt( )
- •Оператор Server Link Table
- •Функция Server_NumCols( )
- •Функция Server_NumDrivers( )
- •Оператор Server Refresh
- •Оператор Server Rollback
- •Оператор Server Set Map
- •Оператор Set Application Window
- •Оператор Set Area Units
- •Оператор Set Browse
- •Оператор Set Cartographic Legend
- •Оператор Set Command Info
- •Оператор Set CoordSys
- •Оператор Set Date Window
- •Оператор Set Digitizer
- •Оператор Set Distance Units
- •Оператор Set Drag Threshold
- •Оператор Set Event Processing
- •Оператор Set File Timeout
- •Оператор Set Format
- •Оператор Set Graph
- •Оператор Set Handler
- •Оператор Set Layout
- •Оператор Set Legend
- •Оператор Set Map
- •Оператор Set Map3D
- •Оператор Set Next Document
- •Оператор Set Paper Units
- •Оператор Set ProgressBars
- •Оператор Set Redistricter
- •Оператор Set Resolution
- •Оператор Set Shade
- •Оператор Set Style
- •Оператор Set Table
- •Оператор Set Target
- •Оператор Set Window
- •Оператор Shade
- •Оператор StatusBar
- •Оператор Stop
- •Функция StyleAttr( )
- •Оператор Sub...End Sub
- •Предложение Symbol
- •Оператор Terminate Application
- •Функция Time()
- •Процедура ToolHandler
- •Оператор Type
- •Оператор UnDim
- •Функция UnitAbbr$( )
- •Оператор Unlink
- •Оператор Update
- •Оператор Update Window
- •Оператор While...Wend
- •Процедура WinChangedHandler
- •Процедура WinClosedHandler
- •Процедура WinFocusChangedHandler
- •Оператор Write #
- •Приложение A: Таблица кодов символов
- •Приложение В: Арифметические и географические операторы
- •ИНДЕКС
Оператор Open File
Оператор Open File
Назначение:
Открывает файл для операций ввода/вывода.
Синтаксис:
Open File filespec
[ For { Input | Output | Append | Random | Binary } ] [ Access { Read | Write | Read Write } ]
As [#] filenum
[ Len = recordlength ]
[ ByteOrder { LOWHIGH | HIGHLOW } ] [ CharSet char_set ]
[ Filetype macfiletype ]
где
filespec – строка, содержащая имя файла;
filenum – целочисленный номер, который будет присвоен файлу вплоть до завершения работы с ним (используется в операторах Get и Put);
recordlength – число символов в одной записи (включая символ конца строки) для доступа к файлу в режиме Random;
char_set – определяет кодировку символов в файле;
macfiletype – тип файла, только для использования в операционной системе Macintosh (например, "MIwo").
Предупреждение:
Вы не можете использовать оператор Open File в окне MapBasic.
Описание:
Оператор Open File открывает текстовый файл для операций ввода/вывода прикладной программой. MapBasic может считывать данные из файла или записывать в него только после открытия файла. Для операций ввода/вывода используются операторы Get, Put, Input #, Print # и Write #.
В MapBasic различаются понятия "файл" и "таблица". Под таблицей понимается база данных MapL Info, данные которой можно показать в окнах Списка и Карты. MapBasic применяет одни команды к таблицам (например, Open Table, Fetch, Select), а другие команды к файлам, которые таблицами не являются.
Предложение For задает режим доступа к данным файла: режим последовательного доступа, режим произвольного доступа или режим бинарного доступа. Если предложения For нет в операторе, то для открытия файла используется режим произвольного доступа.
Файлы, открытые в режиме последовательного доступа
Если Вы собираетесь читать текст из файла, записи которого имеют разную длину (например, одна строка имеет 55 символов, а следующая – 72 и т. д.), то Вам надо использовать режим последовательного доступа. Для задания этого режима в предложении For используется ключевое слово Input, Output или Append.
Если использовано предложение For Input, то для чтения Вы можете использовать операторы Input #
и Line Input #.
Если использовано предложение For Output или предложение For Append, то для записи в файл Вы можете использовать операторы Print # и Write #.
360 |
Справочник MapBasic |
Оператор Open File
Если Вы используете предложение For Input, то в предложении Access Вы можете использовать только ключевое слово Read. Аналогично, с предложением For Output может использоваться в предложении Access только ключевое слово Write.
Предложение Len не должно использоваться в операторе, если задается режим последовательного доступа.
Файлы, открытые в режиме произвольного доступа
Если Вы собираетесь читать текст из файла, записи которого имеют одинаковую длину (например, каждая строка по 80 символов длиной), то Вы должны открыть файл в режиме произвольного доступа. Для задания этого режима в предложении For используется ключевое слово Random.
Для режима произвольного доступа необходимо задать длину записи в предложении Len = recordlength. Величина в параметре recordlength должна задать количество символов одной записи, включая символы конца записи, например, пара символов "возврат каретки" и "новая строка".
Для режима произвольного доступа в предложении Access Вы можете использовать все комбинации ключевых слов: Read, Write или Read Write. Для чтения из файла и записи в файл, открытый в режиме произвольного доступа, используются операторы Get и Put.
Файлы, открытые в режиме бинарного доступа
Если файл открыт в бинарном режиме, то MapBasic конвертирует величину переменной MapBasic в бинарную величину в случае записи и наоборот в случае чтения. Хранение численных данных в бинарном файле более компактно, чем хранение бинарных данных в текстовом файле. Но бинарный файл нельзя показывать и распечатывать как текстовый.
Для открытия файла в бинарном режиме используется предложение For Binary.
Для бинарного режима в предложении Access Вы можете использовать все комбинации ключевых слов: Read, Write или Read Write. Для чтения из файла и записи в файл, открытый в режиме бинарного доступа, используются операторы Get и Put.
Предложения Len и CharSet не должны использоваться в операторе, если задается режим бинарного доступа.
Управление порядком чтения байта
Предложение CharSet задает кодировку символов в файле. Параметр char_set должен быть строковой константой, такой как "MacRoman" или "WindowsLatin1". Если предложение CharSet опущено, то MapInfo будет использовать кодировку вычислительной платформы, в которой выполняется программа. Заметим, что предложение CharSet используется только в том случае, если файл открывается в режимах Input, Output, или Random. Читайте описание стандартного предложения CharSet для более подробной информации.
Если Вы открыли файл в режиме произвольного или бинарного доступа (Random или Binary), предложение ByteOrder задает, как число представлено в файле. В разных вычислительных платформах используется разный порядок байтов для представления данных: DOSLкомпьютеры использует порядок LOW HIGH (в порядке возрастания разрядов), в компьютерах Macintosh и в рабочих станциях UNIX бинарные данные хранятся в порядке HIGH LOW (в порядке убывания разрядов).
Если прикладная программа действует только в пределах одной вычислительной платформы, то Вам не надо беспокоиться о порядке разрядов байтов в файле. Но, если Вам необходимо читать из бинарного файла или писать в бинарный файл, который был создан или будет использоваться в
Справочник MapBasic |
361 |
Оператор Open File
другой платформе, то Вам придется контролировать порядок расположения байтов с помощью предложения ByteOrder.
Допустим, что Ваш файл был создан в операционной системе DOS и имеет порядок байтов LOW HIGH (этот порядок используется по умолчанию в DOS). Если Вы намереваетесь использовать этот файл в Macintosh, то Ваш оператор Open File должен включать в себя предложение ByteOrder LOWHIGH, иначе в Macintosh бинарный файл будет прочитан в порядке HIGH LOW.
Типы файлов системы Macintosh
В Macintosh, оператор Open File может включать предложение Filetype для задания типа файла в системе Macintosh. Каждый файл в Macintosh имеет тип, состоящий из четырех букв (например, "MIwo" для Рабочих Наборов), скрытый от пользователя и не зависимый от имени файла. Тип файла управляет представлением его в Macintosh Finder, поэтому судить о нем пользователь может только по иконке.
Предложение Filetype игнорируется всеми вычислительными платформами, за исключением MacinL tosh. Следующая таблица приводит некоторые четырехбуквенные последовательности, используемые для определения типа файла:
Значение. macfileU |
Тип файла |
type |
|
|
|
"MIwo" |
Рабочий Набор MapInfo. |
"MIta" |
Таблица MapInfo. |
"MIap" |
Программа, написанная на MapBasic (откомпилированная). |
"TEXT" |
Текстовый файл (например, этот тип используется MapInfo для |
|
файла сокращений). |
"MIpr" |
Файл настройки MapInfo. |
"MIhe" |
Файл справочника MapInfo. |
"MIsy" |
Файл с символами и линиями MapInfo. |
"MIdb" |
База данных MapInfo (файлы, являющиеся компонентами таблицы: |
|
файлы с неграфическими данными, файлы с географическими |
|
данными, индексные файлы). |
Замечание: большие и маленькие буквы при задании типа различаются.
Примеры:
Open File "cxdata.txt" For INPUT As #1
Open File "cydata.txt" For RANDOM As #2 Len=42
Open File "czdata.bin" For BINARY As #3
Смотрите также:
Close File, EOF( ), Get, Input #, Print #, Put, Open Table, Write #
362 |
Справочник MapBasic |
Оператор Open Report
Оператор Open Report
Назначение:
Загружает отчет в модуль Crystal Report Designer
Синтаксис:
Open Report reportfilespec
reportfilespec L это полный путь для существующего файла отчета.
Смотри также:
Create Report From Table
Справочник MapBasic |
363 |