Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв ИП 2010-04-04 doc.doc
Скачиваний:
108
Добавлен:
13.05.2015
Размер:
5.96 Mб
Скачать

2.5.7. Задание числа колонок и строк на экране ‑ Width (qb)

Width <число колонок (40, 80)>[,<число строк (25, 30, 43, 50, 60)>]

2.5.8. Управление курсором- Locate (qb)

Командой Locate [<строка>][,<колонка>][,<курсор>]курсор ус­та­нав­­ли­вает­ся в указанную позицию на экране и гасится, если третий параметр равен 0, или зажигается, если он равен 1.

2.5.9. Чтение из оперативной памяти-Data, Read, Restore (qb)

Data <список констант для чтения последующими операторами Read>

Read <список переменных, в которые помещаются значения из списка>

Restore [<метка оператора Datа, формирующего список для чтения>]

<список констант> ‑ одна или несколько числовых или строковых кон­с­тант, разделенных запятой, указывающих данные для чтения. Строко­вые конс­­танты, содержащие запятые, двоеточия, пробелы, должны быть заключены в кавычки. Операторы обычно используют для ввода данных с целью отладки прог­раммы. Операторы могут быть введены только на модульном уровне. Они не могут использоваться в процедурах.

Вопросы для самопроверки и контроля

Вопросы для самопроверки

  1. Для чего используются шаблоны редактирования звездочки в команде Print Using?

  2. Можно ли ввести два символьных значения одной командой Input Line?

Контрольные вопросы

  1. Каково назначение оператора Data?

  2. Для чего указывается фраза Using в команде Print?

  3. Каково назначение функции Tab(n) в команде Print?

2.6. Работа с файлами

2.6.1. Открытие файла или устройства ‑ Open

Open <файл> [For <организация-1>]

[Access <режим доступа>] [<статус доступа>]

As [#]<номер файла (канала)> [Len=<длина записи>].

<файл> - имя файла или тип устройства;

<организация-1> ‑ тип организации файла: Output (последовательный вы­ход­­ной), Input (последовательный входной), Append (последовательный вы­­ходной расширяемый), Random(с прямым методом доступа), Binary (с двоичным доступом). Доступ к записи этого файла осуществляется ука­за­ни­ем порядкового номера записи в файле;

<режим доступа>: Read (чтение), Write (запись), Read Write (все);

<статус доступа>: Lock Read Write(монопольное использование), Shared (многопользовательское использование) Lock Write (запрет записи други­ми программами).

Статус доступа используется в случаях, когда с файлом работают одновременно много пользователей (например, файл покупки-продажи ценных бумаг на фондовой бирже). Монопольное использование файла обычно допускается администратором файла при восстановлении или реорганизации всего файла. Обычно используется многопользовательский режим с возможностью блокировки командой Lock отдельных записей на период их корректировки и последующего снятия блокировки командой Unlock по завершению корректировки записей;

<номер файла> ‑ программный номер файла канала (1-255). Этот номер ис­пользуется во всех других командах работы с файлами вместо имени фай­ла на диске. Свободный номер канала можно получить функцией FreeFile(nk=FreeFile: open “post.txt” for input as nk);.

<длина записи> - длина записи в байтах для файла с прямым доступом. Для указания длины записи удобно использовать функцию Len (<имя переменной-записи>). Обработка файла начинается с команды Open.

2.6.2. Вывод данных с символами-разделителями в файл ‑ Write #

Команда имеет вид: Write #<номер файла>,<список выражений>

#<номер файла> ‑ номер создаваемого текстового файла, который ука­зан в команде Open;

<список выражений> - список выражений через запятую, значения кото­рых выводятся в файл в текстовой форме в виде строки. Выведенные зна­че­ния разделяются запятыми, а символьные значения дополнительно зак­лю­чаются в кавычки. Такая форма является стандартом для языка Basic и служит для передачи данных в другие системы (СУБД, редакторы, элек­трон­ные таблицы, ...).

Пример

Cls: Open “List” For Output As #1 ‘открытие для создания

Do ‘цикл ввод данных и записи их в файл

Input “имя ?”, Name$: input “возраст?”, Age$

Write #1, Name$, Age$: Input “Добавить еще (Д/Н)”; R$

Loop While Ucase$(R$) = “Д” ‘продолжить ввод

Close #1 ‘закрытие созданного файла

Open “List” For Input As #1 'открытие входного файла

Cls: Print “Записи в файле:”: Print ‘вывод заголовка

Do While Not Eof(1) ‘цикл чтения файла

Input #1, Rec1$, Rec2$ 'считывается очередная запись из файла

Print Rec1$, Rec2$ 'выводится очередная запись на экран

Loop ‘конец тела цикла распечатки записей файла

Close #1 ‘закрытие файла List