ВІКІСТОРІНКА
Навигация:
Інформатика
Історія
Автоматизація
Адміністрування
Антропологія
Архітектура
Біологія
Будівництво
Бухгалтерія
Військова наука
Виробництво
Географія
Геологія
Господарство
Демографія
Екологія
Економіка
Електроніка
Енергетика
Журналістика
Кінематографія
Комп'ютеризація
Креслення
Кулінарія
Культура
Культура
Лінгвістика
Література
Лексикологія
Логіка
Маркетинг
Математика
Медицина
Менеджмент
Металургія
Метрологія
Мистецтво
Музика
Наукознавство
Освіта
Охорона Праці
Підприємництво
Педагогіка
Поліграфія
Право
Приладобудування
Програмування
Психологія
Радіозв'язок
Релігія
Риторика
Соціологія
Спорт
Стандартизація
Статистика
Технології
Торгівля
Транспорт
Фізіологія
Фізика
Філософія
Фінанси
Фармакологія


Файлы последовательного доступа

 

Последовательные файлы состоят из рядов строк текста, и их часто называют ASCII-файлами. Каждая строка текста завершается символом возврата каретки (ASCII 13), а файл заканчивается сим­волом Ctrl-Z (ASCII 26). Каждый символ текста занимает один байт. Текст можно просматривать и редактировать с помощью редактора Notepad (Блокнот).

С последовательным файлом можно работать в двух режимах: запись (или добавление данных) и чтение. Для создания последовательного файла необходимо открыть файл, записать данные и закрыть файл.

Файл открывается оператором вида:

 

Open "filename" For mode As #number

 

filename – полное имя файла,

mode – режим доступа к файлу:

Output – это режим, при котором файл открыт для записи; обычно при этом режиме создается новый файл; если открывается для записи уже существующий файл, то ранее хранимая информация будет стерта.

Input – это режим, при котором файл открыт только для чтения информации, записывать в файл при таком режиме нельзя;

Append – это режим, при котором файл открыт для записи, но в отличие от режима OUTPUT, при котором добавление новой информации приводит к уничтожению имеющейся, в режиме APPEND новая информация размещается в конце файла, за последней записью без уничтожения ранее имеющейся

number – идентифицирует файл в программе и может принимать значения от 1 до 255. Номер связан с файлом только тогда, когда файл открыт.

 

В последовательный файл данные записываются с помощью оператора Print или Write. Каждый оператор записывает одну строку данных в файл, заканчивающуюся возвратом каретки. Формат операторов следующий:

 

Print #number, valuel, value2,...

Write #number, valuel, value2,...

 

Оператор Print записывает данные с метками между отдельными элементами. Он подходит для записи текстовых файлов с одним элементом на строку. Оператор Write хранит данные в формате, разделенном запятыми.

 

Файл закрывается оператором Close в формате

 

Close #number

 

Чтение последовательного файла, как и его создание, состоит из трех этапов: открытие файла, чтение данных и закрытие файла. Файл открывается с помощью оператора следующего вида:

 

Open "filename" For Input As #number

 

Данные из файла читаются с помощью одного из приведенных операторов:

 

Line Input #number, string

Input #number, variablel, variable2,...

 

Line Input считывает строку полностью в переменную string и может использоваться для чтения текстовых файлов, когда они записаны с помощью оператора Print. Оператор считывает из файла по одному символу, пока не встретит символ «возврат каретки» или последовательность «возврат каретки» – перевод строки».

Input считывает данные и размещает их в переменных заданного списка. Данные считываемые оператором записываются в файл с помощью оператора Write #.

Последовательные файлы всегда должны читаться с начала файла. Для обнаружения конца файла можно использовать функцию EOF. После завершения чтения файл нужно закрыть с помощью команды Close.

 

Файлы с прямым доступом

 

Такие файлы хранят данные в формате, основанном на записи. Этот формат задается пользователем с помощью оператора Type...End Турев зависимости от количества полей и их типа в записи:

Type recordtype

Variablel As type

Variable2 As type

VariableN As type

End Type

Записи читаются и/или записываются в три этапа: открытие файла, чтение или запись данных, закрытие файла.

Для открытия файла используется оператор Open в следующем формате:

Open "filename" For Random As #number Len = length

Если опустить параметр Len, то длина записи по умолчанию будет равна 128 байтам.

Для того чтобы сделать запись, нужно сначала объявить переменную, которая имеет тип, предварительно определенный пользователем с помощью оператора Type...End Type. Например^

Dim Record As recordtype

После этого нужно заполнить запись значениями отдельных переменных, представляющих поля записи:

Record.variablel = выражение1

Record.variable2 = выражение2

Сформированная запись записывается в файл с помощью оператора Put следующего формата:

Put #number, recordnumber, Record

где recordnumber – номер записи, начинающийся с 1 для первой записи. Если номер находится за пределами конца текущего файла, файл расширяется. При этом неиспользованные записи будут содержать «мусор», если их специально не очистить.

Читаются записи из файла с помощью оператора Get следующего формата:

Get #number, recordnumber, Record

Переменные в Record заполняются соответствующими данными из записи и могут использоваться для отображения, печати и др.

Рассмотрим пример работы с файлом прямого доступа. Пусть требуется разработать программу заполнения файла прямого доступа записями заданной структуры с последующим чтением записи заданного номера. Формат записи:

Поле1 – Фамилия

Поле2 – Имя

Поле3 – Номер группы

После разработки формы к проекту необходимо добавить модуль, в котором следует с помощью оператора Туре.. .End Type ввести структуру записи:

Type recordtype

Name As String* 15

Namel As String* 15

NumberGroup As String * 6

End Type

Privat Sub Command1_Click()

Dim Record As recordtype

Dim number As Integer, RetInt As Integer, number1 As Integer

Dim NumberFile As Integer

NumberFile = FreeFile

Open "C:\File.txt" For Random As #NumberFile Len = 36

number =1

Do

Record.Name = InputBox("Введите фамилию", "Окно ввода")

Record.Namel = InputBox("Введите имя", "Окно ввода")

Record. NumberGroup = InputBox("Введите группу", "Окно ввода")

Put #NumberFile, number, Record

RetInt = MsgBox("Продолжить ввод? Да или Нет", vbQuestion +vbYesNoCancel)

If RetInt = vbYes Then

number = number + 1

Else

Exit Do

End If

Loop

numberl = InputBox("Введите № записи,которую нужно выдать")

If numberl <= number And numberl <> 0 Then

Get #NumberFile, numberl, Record

Text1.Text = Record.Name

Text2.Text = Record.Name1

Text3.Text = Record.NumberGroup

Else

MsgBox "Запись не найдена", vbCritical, "Ошибка"

End If

End Sub

 

Использование объектов

 

Операторы программ VBA, использующие объекты, обычно выполнявши одно или несколько следующих действий:

· определяют текущее состояние или статус объекта путем выборки значения, сохраняемого в определенном свойстве;

· изменяют состояние или статус объекта установкой значения, сохраненного в определенном свойстве;

· используют один из методов объекта, обеспечивая выполнение объектом одной из его встроенных задач.

Например, можно определить имя активного в данный момент рабочего листа в Excel, выполняя выборку строки, сохраняемой в свойстве Name рабочего листа. (Свойство Name рабочего листа содержит имя рабочего листа, как показано на ярлыке листа.) Чтобы изменить имя рабочего листа, необходимей присвоить новую строку свойству Name этого рабочего листа. Для добавления рабочего листа в рабочую книгу используется метод Add рабочей книги.

Прежде чем применять свойства и методы некоторого объекта, их следует сначала определить.

В операторах VBA используется следующий общий синтаксис для определения свойства или метода объекта:

Object.identifier

Object – любая допустимая ссылка на объект. Объектные ссылки создают заданием переменной для ссылки на объект или использованием методов или свойств объектов, возвращающих объектную ссылку.

Identifier – любое допустимое имя свойства или метода; VBA отображает сообщение о runtime-ошибке при попытке использовать свойства или методы, которые не являются в действительности частью указанного объекта.

Например Word-процедура, выводящая имя активного документа имеет вид:

 

Пример 1. Активный документ

Sub ActDocum()

MsgBox "Активный документ: " & ActiveDocument.Name

End Sub

 

Точка (.) отделяет объектную ссылку от имени свойства или метода. В некотором смысле эта точка-разделитель также соединяет объектную ссылку с идентификатором свойства или метода. Поскольку идет обращение к свойству или методу посредством объекта, необходимо определять объектную ссылку и идентификатор свойства или метода вместе. Точка-разделитель указывает VBA, где заканчивается объектная ссылка и где начинается идентификатор свойства или метода. В то же самое время точка-разделитель соединяет объектную ссылку и имя свойства или метода для образования единого идентификатора в операторе VBA.

В табл. 1 приведены несколько из наиболее важных объектов (с точки рения программиста VBA) в Excel 2000/2002. В таблице показано имя объекта и краткое описание этого объекта.

Объект Описание
Application Приложение Excel
Chart Диаграмма в рабочей книге
Font Объект, содержащий атрибуты шрифта и стиля для текста, отображаемого в рабочем листе
Name Заданное имя для диапазона ячеек рабочего листа
Range Диапазон ячеек (одна или более) или именованный диапазон в рабочем листе
Window Любое окно Excel; окна используются для отображения рабочих листов, диаграмм и т.д.
Workbook Открытая рабочая книга
Worksheet Рабочая таблица в книге

 

 

© 2013 wikipage.com.ua - Дякуємо за посилання на wikipage.com.ua | Контакти