
- •5. Проектирование разветвляющихся вычислительных процессов
- •5.1. Условный оператор
- •5.2. Проектирование приложения, реализующего разветвляющийся вычислительный процесс
- •Используемые переменные
- •5.2.5. Интерфейс с пользователем
- •5.2.6. Код программы
- •5.2.7. Реализация проекта
- •5.2.8. Анализ проекта
- •5.2.9. Выполнение программы и анализ полученных результатов
- •5.4. Пример использования оператора выбора
- •6. Проектирование приложений с циклами
- •6.1. Назначение операторов цикла
- •6.2. Условные циклы
- •6.3. Проектирование приложения на базе условного цикла с верхним окончанием
- •Используемые переменные
- •6.3.5. Интерфейс с пользователем
- •6.3.6. Код программы
- •6.3.7. Анализ проекта
- •6.3.8. Выполнение программы и анализ полученных результатов
- •6.4. Проектирование приложения с использованием условного цикла с нижним окончанием
- •Используемые переменные
- •6.4.5. Интерфейс с пользователем
- •6.4.6. Код программы
- •6.4.7. Анализ проекта
- •6.4.8. Выполнение программы и анализ полученных результатов
- •Планируемые расходы на ремонт офиса
- •6.5. Цикл со счетчиком
- •6.6. Проектирование приложения с использованием цикла со счетчиком
- •6.6.7. Реализация проекта
- •6.6.8. Анализ проекта
- •6.6.9. Выполнение программы и анализ полученных результатов
- •Остаток товаров на 17.09.01
- •7. Массивы данных
- •7.1. Общие сведения о сложных типах
- •Стоимость товаров
- •7.2. Описание и обращение к массивам
- •7.3. Динамические массивы
- •7.4. Использование массивов при решении экономической задачи
- •Используемые данные
- •7.4.5. Интерфейс с пользователем
- •7.4.6. Код программы
- •7.4.7. Реализация проекта
- •7.4.8. Анализ проекта
- •7.4.9. Выполнение программы и анализ полученных результатов
- •Прайс-лист
- •8. Массивы элементов управления
- •8.1. Назначение и создание массивов элементов управления
- •"Группа переключателей"
- •8.2.4. Структура данных
- •Используемые данные
- •8.2.5. Интерфейс с пользователем
- •8.2.6. Код программы
- •8.2.7. Реализация проекта
- •8.2.8. Анализ проекта
- •8.2.9. Выполнение программы и анализ полученных результатов
- •9. Пользовательский тип данных
- •9.1. Определение и обращение
- •9.2. Оператор присоединения With
- •10. Файлы
- •10.1. Назначение файлов
- •10.2. Операции с файлами
- •10.3. Режимы доступа
- •10.4. Файлы с произвольным доступом
- •10.5. Проектирование приложения с файлами
- •10.5.1. Постановка задачи
- •10.5.2. Экономико-математическая модель
- •10.5.3. Алгоритм решения задачи
- •10.5.4. Структура данных
- •10.5.5. Интерфейс с пользователем
- •10.5.6. Код проекта
- •10.5.7. Реализация проекта
- •10.5.8. Анализ проекта
- •9.5.9. Выполнение программы и анализ полученных результатов
- •Данные по заказу на крепежные изделия
- •11. Процедуры и функции
- •11.1. Назначение процедур и их виды
- •11.2. Описание процедур
- •11.3 Вызов процедуры
- •11.4. Функции
- •11.5. Использование процедур и функций при решении экономической задачи
- •11.5.1. Код проекта
- •11.5.2. Реализация проекта
10.4. Файлы с произвольным доступом
Для работы с файлом в режиме произвольного доступа его нужно открыть оператором Open, который имеет вид:
Open ИмяФайла For Random [Access Операция] [Блокировка]
As [#] Дескриптор[Len = ДлинаЗаписи]
где ИмяФайла – выражение строкового типа, представляющее имя файла.
Примеры:
1. "D:\MЭО15\Файлы\Цена.dat";
2. ”Цена.dat”
В первом случае указана папка, в которой хранится файл Цена.dat, а во втором предполагается, что он хранится в текущей папке.
Операция – одно из следующих значений:
Read (только чтение),
Write (только запись),
Read Write (чтение и запись).
Если операция не указана, то подразумевается Read Write.
Блокировка – используется в многозадачном режиме (например, в сети), запрещая доступ к файлу другим процессам, может принимать одно из следующих значений:
Shared – файл может использоваться всеми процессами для чтения и записи;
Lock Read – запрет чтения из файла для других процессов;
Lock Write – запрет записи в файл для других процессов;
Lock Read Write –запрет чтения и записи для других процессов.
Установка параметра блокировки со служебным словом Lockдопустима, если указанную после словаLockоперацию в текущий момент не выполняет никакой другой процесс.
Дескриптор – выражение целого типа, определяющее номер канала ввода/вывода для открываемого файла, (например,1). Символ # перед дескриптором можно опустить.
ДлинаЗаписи – выражение целого типа, определяющее размер элемента в байтах (например, 25). Часто для задания длины записи используют встроенную функцию Len(х), которая определяет размер аргумента х. При открытии файла в качестве х указывается имя переменной пользовательского типа, которая будет использоваться для работы с файлом.
Примеры операторов открытия файлов с произвольным доступом:
1) Open txtИмя_файла For Random As # 1 Len= Len (udtСведения)
2) Open “Цена.dat” For Random Access Read As #2 Len = 25
В первом случае открывается файл, имя которого указано в текстовом поле txtИмя_файла. Длина записей в файле совпадает с размером переменной пользовательского типа udtСведения. Файл открывается как для чтения так и записи, поскольку параметр Access отсутствует. Для работы с файлом назначен первый канал ввода/вывода.
Во втором примере открывается файл с именем Цена.dat, который находится в текущей папке. Предполагается только читать информацию из него. Длина каждой записи 25 байтов. Все действия с этим файлом будут выполняться во втором канале ввода/вывода.
Для записи данных в файл используется оператор Put, а для чтения – оператор Get. Эти операторы имеют вид:
Put #Дескриптор, НомерЗаписи, Переменная
Get #Дескриптор, Номер Записи, Переменная
Действие оператора Put состоит в следующем: значение, которое хранится в поле памяти переменной, пересылается из оперативной памяти в файл, определяемый дескриптором, и в файле записывается на том месте, которое задано номером записи.
Оператор Get имеет противоположное назначение. Он указывает, что нужно найти запись под данным номером в файле, который определен дескриптором. А затем переслать содержимое этой записи из файла в поле памяти, которое занимает указанная переменная в оперативной памяти.
Примеры операторов Put и Get:
Put #1, i, udtСведения;
Get #1, i, udtСведения;
В первом случае осуществляется запись в файл, связанный с первым каналом ввода/вывода, информации, которая хранится в оперативной памяти в переменной пользовательского типа udtСведения. Эта информация записывается в файл на место с номером i.
Во втором случае происходит обратный процесс: с i-того места в файле считывается информация и пересылается в оперативную память в переменную udtСведения. Для закрытия файлов используется оператор Close, который имеет вид:
Close [#] [СписокДескрипторов]
Если список дескрипторов отсутствует, то закрываются все открытые файлы.
Примеры оператора Close:
1) Close # 1,2,5
2) Close
В первом случае закрываются только файлы, для которых были назначены каналы ввода/вывода 1, 2 и 5, а во втором – все файлы.
Для переименования файла используется оператор Name, который имеет вид:
Name СтароеИмя As НовоеИмя
Копирование файла осуществляется с помощью оператора FileCopy, который имеет вид:
FileCopy ИмяИсходногоФайла, ИмяЦелевогоФайла
Чтобы удалить файл применяют оператор Kill, который имеет вид:
Kill ИмяУдаляемогоФайла
В этих операторах имена файлов задаются строковыми выражениями, которые определяют имя файла и, возможно, путь к нему.
Примеры операторов переименования, копирования и удаления файлов:
1) Name "Февраль.dat" As "Март.dat"
2) FileCopy "Налоги.dat", "Удержания.dat"
3) Kill "Налоги.dat"
В первом случае файл с данными за февраль переименован в файл с данными за март. Во втором случае данные из файла по налогам скопированы в новый файл, который содержит сведения по удержаниям. В третьем случае удален файл с данными по налогам.
Поскольку все записи в файле с произвольным доступом имеют одинаковую длину, то, зная общую длину всего файла, можно определить количество записей в нем с помощью оператора вида:
intКол_зап = LOF(x)/Len (udtСведения)
Здесь LOF(х) – встроенная функция VB, с помощью которой определяется общая длина файла, связанного с каналом х (LOF – сокращение от англ. Length Of File – длина файла).