
- •Информатика лабораторные работы Методические указания
- •Информатика
- •Перевод чисел из одной системы счисления в другую
- •Арифметические операции в позиционных системах счисления
- •4. Контрольные вопросы
- •5. Библиографический список
- •Информатика
- •Элементы схем алгоритмов
- •Символы
- •Пояснительный текст
- •Соединительные линии
- •Основные типы алгоритмических структур
- •Линейная структура
- •Разветвленная структура
- •4. Контрольные вопросы
- •5. Библиографический список
- •Информатика
- •Элементы схем алгоритмов
- •Символы
- •Пояснительный текст
- •Соединительные линии
- •Основные типы алгоритмических структур
- •Циклическая структура
- •4. Контрольные вопросы
- •5. Библиографический список
- •Информатика
- •4. Контрольные вопросы
- •5. Библиографический список
- •Информатика
- •Запуск, редактирование и отладка программы
- •4. Контрольные вопросы
- •5. Библиографический список
- •Информатика
- •Константы
- •Переменные
- •Сводная таблица описания типов данных
- •Операции языка QuickBasic
- •4. Контрольные вопросы
- •5. Библиографический список
- •Информатика
- •4. Контрольные вопросы
- •5. Библиографический список
- •Информатика
- •Функции обработки символьных строк
- •4. Контрольные вопросы
- •5. Библиографический список
- •Информатика
- •4. Контрольные вопросы
- •5. Библиографический список
- •Информатика
- •4. Контрольные вопросы
- •5. Библиографический список
- •Информатика
- •4. Контрольные вопросы
- •5. Библиографический список
- •Информатика
- •Условные операторы
- •4. Контрольные вопросы
- •5. Библиографический список
- •Информатика
- •4. Контрольные вопросы
- •5. Библиографический список
- •Информатика
- •4. Контрольные вопросы
- •5. Библиографический список
- •Информатика
- •4. Контрольные вопросы
- •5. Библиографический список
- •Информатика
- •4. Контрольные вопросы
- •5. Библиографический список
- •Информатика
- •4. Контрольные вопросы
- •5. Библиографический список
- •Информатика
- •4. Контрольные вопросы
- •5. Библиографический список
- •Информатика
- •4. Контрольные вопросы
- •5. Библиографический список
- •Информатика
- •4. Контрольные вопросы
- •5. Библиографический список
- •Информатика
- •4. Контрольные вопросы
- •5. Библиографический список
- •Информатика
- •4. Контрольные вопросы
- •5. Библиографический список
- •Информатика
- •4. Контрольные вопросы
- •5. Библиографический список
- •Информатика
- •4. Контрольные вопросы
- •5. Библиографический список
- •Информатика
- •Работа с субд Microsoft Access 2000
- •Панель кнопок перехода
- •4. Контрольные вопросы
- •5. Библиографический список
- •Информатика
- •Средства архивации файлов
- •4. Контрольные вопросы
- •5. Библиографический список
4. Контрольные вопросы
Назначение и синтакис операторов CALL INTERRUPT, CALL INTERRUPTХ, CALL INT86OLD, CALL INT86XOLD ?
Вопросы по процедуре выполнения индивидуального задания.
5. Библиографический список
Бобровский С. Программирование на языке QBASIC для школьников и студентов. — М.: Десс; Инфорком-Пресс, 1999. - 208 с.
Зельднер Г.А. Программируем на языке QuickBASIC 4.5. - М: ABF, 1996. - 432 с.
Введение в программирование на языке Microsoft BASIC: Учебное пособие / Ю.Я. Максимов, С.В. Осипов, А.В. Потемкин, Щ.С. Симоненков. - М.: ”Диалог-МИФИ”,1991. - 176 с.
Министерство образования
Российской Федерации
Тульский государственный университет
Кафедра “Инструментальные и метрологические системы”
Информатика
ЛАБОРАТОРНАЯ РАБОТА № 19
Работа с файлами в среде QB
для студентов очного обучения
Тула 2000 г.
1. Цель и содержание работы
Целью работы является изучение способов долговременного хранения данных.
Полученные знания и навыки необходимы для выполнения других лабораторных работ, а также практической деятельности.
2. Порядок выполнения работы
Изучить теоретическую часть.
Получить задание у преподавателя.
Выполнить задание.
Оформить отчет.
Защитить работу.
3. Теоретическая часть
Операторы языка
OPEN Оператор |
| |||
Включает ввод/вывод файл или устройство | ||||
OPEN файл$ [FOR режим1] [ACCESS доступ] [блок] AS [#]номер[LEN=длина] OPEN режим2, [#]номер, файл$ [LEN=длина] ‘Альтернативный синтакис
| ||||
|
Описание |
Тип доступа |
Описание | |
OUTPUT (O) |
Определяет последовательный вывод; |
READ |
Только для чтения; | |
INPUT (I) |
Определяет последовательный ввод; |
WRITE |
Только для записи; | |
APPEND (A) |
Определяет последовательный вывод с добавлением, т.е. устанавливает указатель записи к концу файла. Операторы PRINT# и WRITE# добавляют выводимые данные к концу файла; |
READ WRITE |
Чтение и запись. Этот тип доступа возможен только для файлов RANDOM, APPEND, BINARY. | |
RANDOM (R) |
Определяет прямой ввод и вывод ( умалчиваемый тип) . Если нет условия ACCESS, доступ выполняется в порядке: 1- чтение и запись, 2- только запись, 3- только чтение; |
Тип блока по умолчанию |
Описание По умолчанию файл может быть открыт любое число раз для чтения и записи но другие процессы не имеют доступа к этому файлу пока файл открыт; | |
BINARY (B) |
Определяет двоичный ввод и вывод. Можно читать или писать информацию любого байта файла операторами GET и PUT. |
SHARED |
Любые процессы на любой машине могут иметь доступ для чтения и записи файла; | |
|
LOCK READ |
Другие процессы не имеют возможности чтения этого файла. Эта блокировка возможна если другие процессы ранее не блокировали доступ для чтения к этому файлу; | ||
|
LOCK WRITE |
Другие процессы не имеют возможности писать в этот файл. Эта блокировка возможна если другие процессы ранее не блокировали доступ для записи к этому файлу; | ||
|
LOCK READ WRITE |
Другие процессы не имеют возможности читать и писать в этот файл. Эта блокировка возможна если другие процессы ранее не блокировали доступ для записи и /.или для чтения к этому файлу. | ||
| ||||
OPEN n$ FOR OUTPUT AS #1 PRINT #1, "Это находится в файле" CLOSE OPEN n$ FOR INPUT AS #1 INPUT #1, a$ PRINT "Чтение из файла: "; a$ CLOSE |
CLOSE RESET Оператор |
|
CLOSE - закрывает один или несколько файлов или устройств. RESET - закрывает все файлы. | |
CLOSE [[#] номер_файла [, [#] номер_файла ] ...] RESET
| |
|
GET PUT Операторы |
|
GET считывает из файла в буфер прямого доступа или в переменную PUT записывает содержимое переменной или буфера прямого доступа в файл | |
GET [#] номер_файла [ , [ номер_записи ] [ , переменная ] PUT [#] номер_файла [ , [ номер_записи ] [ , переменная ]
| |
| |
Student AS STRING * 20 Score AS SINGLE END TYPE DIM MyClass AS TestRecord OPEN "FINAL.DAT" FOR RANDOM AS #1 LEN = LEN(MyClass) MyClass.Student = "Василий Иванов" MyClass.Score = 99 PUT #1, 1, MyClass CLOSE #1 OPEN "FINAL.DAT" FOR RANDOM AS #1 LEN = LEN(MyClass) GET #1, 1, MyClass PRINT "СТУДЕНТ:", MyClass.Student PRINT "СЧЕТ:", MyClass.Score CLOSE #1 KILL "FINAL.DAT" |
INPUT # LINE INPUT # Операторы |
|
INPUT считывает входные данные от клавиатуры или из файла. LINE INPUT считывает строку, содержащую до 255 символов, от клавиатуры или из файла. | |
INPUT #номер_файла%, список_переменных LINE INPUT #номер_файла%, переменная$
| |
| |
OPEN "СПИСОК" FOR OUTPUT AS #1 DO INPUT " Ф.И.О.: ", name$ 'Считывает ввод от клавиатуры. INPUT " Группа: ", Group $ WRITE #1, name$, Group$ INPUT "Продолжить"; R$ LOOP WHILE UCASE$(R$) = "Д" CLOSE #1 'Просмотр файла. OPEN "СПИСОК" FOR INPUT AS #1 CLS PRINT "Записи в файле:": PRINT DO WHILE NOT EOF(1) LINE INPUT #1, REC$ 'Считывает записи из файла. PRINT REC$ 'Печатает записи на экране. LOOP CLOSE #1 KILL "СПИСОК" |
INPUT$ Функция |
|
Возвращает строку символов, считанных из указанного файла | |
INPUT$(n [, [#] номер_файла%])
| |
| |
PRINT #1, "Текст" CLOSE OPEN "TEST.DAT" FOR INPUT AS #1 PRINT INPUT$(3, 1) 'Печатает первые три символа CLOSE |
PRINT # PRINT # USING WRITE # Операторы |
|
PRINT #, PRINT # USING, WRITE # записывают данные в последовательный файл. | |
PRINT # номер_файла%, [ USING формат;] список_выражений [ , | ; ] WRITE # номер_файла%, [список_выражений]
| |
| |
OPEN "LIST" FOR OUTPUT AS #1 DO INPUT " Ф.И.О : ", Name$ INPUT " Группа : ", Group% WRITE #1, Name$ PRINT #1, USING "######"; Group% INPUT "Добавить еще"; R$ LOOP WHILE UCASE$(R$) = "Д" CLOSE #1 |
BSAVE BLOAD Операторы |
|
BSAVE копирует содержимое области памяти в файл. BLOAD загружает файл, созданный BSAVE, в память. | |
BSAVE файл$, смещение%, длина& BLOAD файл$, [ смещение% ]
| |
| |
SCREEN 1 ... ‘Рисуем операторами LINE и DRAW GET(130, 20) - (230 - 100), Ris ‘Запись графики в файл DEF SEG = VARSEG (Ris(1)) BSAVE “POSTER.GRH”, VARPTR (Ris(1)), 2080 ‘ по 4 байта на элемент DEF SEG ... DEF SEG = VARSEG (Ris(1)) ‘Считывание графики из файла BLOAD “POSTER.GRH”, VARPTR (Ris(1)) DEF SEG PUT (70, 20), Ris |
EOF LOF Функции |
| |
Проверка конца файла. EOF возвращает "истинно" (не ноль) при достижении конца файла. LOF возвращает длину файла в байтах. | ||
EOF(номер_файла%) LOF(номер_файла%)
| ||
| ||
OPEN "KAF.IMS"FOR INPUT AS #1 c = 0 DO WHILE NOT EOF(1) AND c< 1000 INPUT #1, Group (c) c = c + 1 LOOP |
INPUT "Введите имя файла: "; f$ OPEN f$ FOR BINARY AS #1 FilS& = LOF (1) \ 1024 CLOSE #1 PRINT "Длина файла = "; FilS&;“Kb”
|
FIELD Оператор |
|
Отводит место под переменные в буфере файлов прямого доступа. | |
FIELD [#] номер_файла% , длина AS переменная [ , длина AS переменная] ...
| |
| |
FIELD #1, 30 AS NameC$, 50 AS Address$ |
LSET RSET Операторы |
|
LSET и RSET перемещают данные из памяти в буфер файлов прямого доступа (для оператора PUT) и осуществляют правое или левое выравнивание значений строковой переменной. LSET также копирует содержимое одной записи переменной в другую без сравнения типов данных. | |
LSET | RSET переменная = выражение | переменная_1 = переменная_2
| |
| |
FIELD #1, 5 AS Ls1$, 5 AS Rs1$ LSET Ls1$ = "ЛSET": RSET Rs1$ = "ПSET" PUT #1, 1: CLOSE #1 OPEN "FILEDAT.DAT" FOR RANDOM AS #1 LEN = 10 FIELD #1, 5 AS Ls2$, 5 AS Rs2$ GET #1, 1: PRINT "*" + Ls2$ + "*", "*" + Rs2$ + "*" CLOSE #1 |
FILEATTR Функция |
|
Возвращает информацию об открытом файле. | |
FILEATTR(номер_файла%, атрибут%)
| |
PRINT FILEATTR(1, 1) CLOSE |
FREEFILE Функция |
|
Возвращает номер следующего доступного неиспользуемого файла. | |
FREEFILE | |
| |
PRINT "Номер следующего файла: "; FREEFILE CLOSE |
IOCTL Оператор |
|
Посылает управляющую строку драйверу устройства. | |
IOCTL [#] номер_файла%, строка$
| |
|
IOCTL$ Функция |
|
Возвращает информацию о текущем состоянии драйвера устройства. | |
IOCTL$([#] номер_файла%)
| |
|
LOC Функция |
|
Возвращает текущую позицию в файле. | |
LOC(номер_файла%)
| |
| |
FOR i% = 1 TO 10 PUT #1, , i% NEXT i% SEEK #1, 2 GET #1, , i% PRINT "Данные: "; i%; " Текущая запись: "; LOC(1); " Следующая: "; SEEK(1) |
LOCK UNLOCK Операторы |
|
LOCK ограничивает или закрывает доступ к файлу при работе в сети UNLOCK отменяет ограничения, наложенные последним оператором LOCK. | |
LOCK [#] номер_файла% [ , запись& | [ начало& ] TO конец& ] [ операторы ] UNLOCK [#] номер_файла% [ , запись& | [ начало& ] TO конец& ]
| |
| |
OPEN "GROUP.IMS" FOR RANDOM AS #1 FOR i% = 1 TO 10 PUT #1, , i% NEXT i% LOCK #1, 2 'Закрытие записи 2 GET #1, 2, i% UNLOCK #1, 2 'Открытие записи 2 |
SEEK Функция |
|
Возвращает текущую позицию файла. | |
SEEK(номер_файла%)
| |
| |
FOR i% = 1 TO 10 PUT #1, , i% NEXT i% SEEK #1, 2 GET #1, , i% PRINT "Данные: "; i%; " Текущая запись: "; LOC(1); " Следующая: "; SEEK(1) |
SEEK Оператор |
|
Устанавливает позицию файла для следующей записи или чтения. | |
SEEK [#]номер_файла%, позиция
| |
| |
FOR i% = 1 TO 10 PUT #1, , i% NEXT i% SEEK #1, 2 GET #1, , i% PRINT "Данные: "; i%; " Текущая запись: "; LOC(1); " Следующая: "; SEEK(1) |