Глава 8: Ввод/Вывод в файлы
MapBasic Руководство пользователя
181
Открыв текстовый файл, Вы можете осуществлять чтение из него
оператором Input # или оператором Line Input #. Line Input #
считывает целиком одну строку из текстового файла в переменную
типа String. Оператор Input # позволяет рассматривать строку текста
как набор значений, разделенных запятыми, и читать эти значения по
отдельности. Например, приложение NVIEWS.MB считывает данные
следующего вида:
"New York", 75.75, 42.83, 557.5
"Texas", 100.2, 31.29, 1200
Каждая строка текстового файла содержит здесь четыре значения –
название, координаты X и Y, а также размер изображения.
Приложение NVIEWS.MB использует оператор Input # для того, чтобы
считывать сразу по четыре значения из каждой строки в четыре
различные переменные:
Input #1, vlist(tot).descript,
vlist(tot).x,
vlist(tot).y,
vlist(tot).zoom
Переменная "vlist" – это массив, определенный пользователем.
При последовательном считывании данных необходимо проверять
результат чтения. После того, как считано содержимое последней
строки файла, следующая операция чтения выдаст сообщение об
ошибке. Чтобы избежать такой ошибки, проверяйте значение функции
EOF( ) (end–of–file – конец файла) после каждой операции чтения.
Если EOF( ) возвратила FALSE, то в файле еще остались несчитанные
строки (то есть следующая операция чтения пройдет правильно). Если
же EOF( ) возвратит TRUE, то достигнут конец файла.
Замечание: Чтение последней строки файла не означает, что будет
установлен признак "конец файла". EOF( ) возвращает TRUE
только после того, как Вы попытаетесь в первый раз считать
строку за концом файла.
Чтобы создать файл, содержащий значения, разделенные запятыми,
надо применить оператор Open File с предложением For Output или For
Append. После того, как файл будет открыт, с помощью Write #
данные можно записывать в файл. В операторе Write # можно задать
перечень значений, которые следует записывать в каждую строку
файла. Так, в приложении NVIEWS.MB из набора примеров оператор
Write # используется (в цикле) для записи в файл четырех значений
(названия, X, Y и размера):
Write #1, vlist(i).descript, vlist(i).x, vlist(i).y,
vlist(i).zoom