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

Оператор 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

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