Смекни!
smekni.com

Курс лекций по V B 5.0 (стр. 4 из 11)

Основные свойства Списка каталогов.

Свойство Содержание
List Массив членов списка каталогов
ListCount Кол. членов списка каталогов
ListIndex Индекс массива
Path Текущий Путь для списка каталогов
Parent Для доступа к свойствам, событиям и методам родительской формы данного элемента

События Списка каталогов

События Описание
Click
MouseUp, MouseUp, MouseMove
KeyUp,KeyDawn,KeyPress
DragDrop, DragOver
GotFocus,LostFocus
Change Изменение в списке каталогов

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

Private Sub dirBox_ Change()

filFile1.Path = dirBox.Path

End Sub

При этом для списка каталогов Path указывает выбранный каталог, а для списка файлов - каталог, файлы которого отражаются в списке.

DriveListBox- список дисков.

В отличии от предыдущих элементов список дисков является выпадающим. Список дисков отображает текущий диск, а когда пользователь щелкает на кнопке со стрелкой, выводит список всех доступных дисков.

Основные свойства Списка дисков

Свойство Содержание
Drive Определяет текущий диск
ListCount Кол. членов списка дисков
ListIndex Индекс массива дисков
List Массив членов списка дисков
Parent Для доступа к свойствам, событиям и методам родительской формы данного элемента

События Списка дисков

События Описание
KeyUp,KeyDawn,KeyPress
DragDrop, DragOver
GotFocus,LostFocus
Change Изменение в списке дисков

Основным свойством является свойство Drive , которое используется для получения и установки текущего диска. Это свойство используется для синхронизации работы списка дисков и списка каталогов. Например,

Private Sub drvBox_ Change()

dirBox.Path = drvBox. Drive

Ch Drive drvBox. Drive ‘ Если нужно изменить текущий диск ОС

End Sub

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

Используются когда:

а) редко вносятся изменения

б) информация в файле обрабатывается от начала до конца

в) если нужно добавлять информацию в конец файла.

Для совершения операции чтения или записи с файлом его нужно открыть командой Open. После Open следует имя файла, строковая переменная или строка в двойных кавычках. Если файл не текущем каталоге, нужно указать путь к нему.

Запись информации в файл:

Open “имя файла” for Output as # 1

# 1 - это идентификатор файла - число от 1 до 255 с символом #. Максимальное число одновременно открытых файлов определяются параметром в Config.sys.

По команде Open резервируется файловый буфер в памяти компьютера. По мере заполнения буфера активируются соответствующий диск и весь блок информации посылается непрерывным потоком на диск (количество будет устанавливаться в Config.sys). После окончания работы с файлом он закрывается командой Close # идентификатор файла. Команда Close сбрасывает информацию на диск и очищает буфер. Для сброса содержимого буфера на диск (в критических ситуациях) используется команда Reset. Для ввода информации в файл можно использовать команду Print #

“ Запись в файл

Open “File 1” For Output As #1

Print #1, “1 2 3 4 5 ” или Print #1, txtDisplay.Text

Close #1

Если в текущем каталоге есть файл с таким именем, то этой командой он будет уничтожен.

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

Для определения размера открытого файла можно использовать команду LOF (идентификатор файла)

Open “File 1” For Output As #1

Print #1, “1 2 3 4 5 ”

Print LOF(1)

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

Чтение из файла

Open ”имя файла” For Input As # идентификатор файла

Задается свободный идентификатор, который в данный момент не используется в программе. Или так:

FileNumber % = FreeFile

Open “имя файла” For Input As # FileNumber %

После этого можно использовать оператор Line Input # для построчного чтения информации из файла:

Open “File1” For Input As #1

Line Input #1, A$ принимает в A$ всю информацию до Enter

Print A$

Close #1

Либо Input # идентификатор файла, список переменных, если запись с помощью Write, txtDisplay

Если файл сложной структуры, состоит из полей и записей, то файл будет читаться целыми записями командой LineInput, либо можно информацию читать из отдельных полей командой Input #

Например, чтение записей из файла Spisok в массив

1. Определяем тип пользователя

Type StudentRecord

Name As String

Adress As String

End Type

2. Объявляем массив записей типа Student как глобальную переменную

Global StudentAdress( ) As StudentRecord

Sub Proc( )

Dim FileNum As Integer, I As Integer

ReDim StudentAdress(1 to 150)

FileNum = FreeFile

Open “Spisok” For Input As # FileNum

For I=1 to 150

Input #FileNum, StudentAdress(I).Name

Input #FileNum, StudentAdress(I).Adress

Next I

Close FileNume

End Sub

Чтение текстового фала в текст, поле

. . . .

FileNum = FreeFile

Open “My.txt” For Input As FileNum

txtDisplay.Text=Input(LOF (FileNum), FileNum)

Close #FileNum

где LOF(FileNum) размер файла в байтах

Дозапись информации в существующий последовательный файл

При этом строки, которые будут выведены в файл присоединяются к строкам, которые уже содержаться в файле. Для этого служит оператор

Open “имя файла” For Append As # идентификатор файла

При этом:

- VB открывает файл, а если он не существует, то создает и создает соответствующий буфер;

- находит конец файла на диске;

- готовит к записи в конец файла.

Пусть существует текстовый файл My.txt и нужно дописать в его конец строку “До свидания”:

FileNum=FreeFile

Open “My.txt” For Append As FileNum

Print #FileNum, “До свидания”

Close #FileNum

При обработке больших файлов часто необходимо проверять на достижение конца файла. Для этого существует оператор EOF (идентификатор файла).

Фрагмент программы чтения информации из файла, созданного с помощью оператора Print #

. . . . .

B$ = “ ”

FileNum=FreeFile

Open “My.txt” For Input As #FileNum

Do Until EOF(FileNum)

Line Input #FileNum, A$

B$=B$+A$

Loop

txtDisplay.Text=B$

Close #FileNum

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

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

При создании файла указывается максимальная длина существующей записи. Команда создания файла:

Open “MyLib.dat” For Random As # идентификатор файла

Len = длина записи, можно определять с помощью функции Len (имя переменной записи) в текущем каталоге.

Открытый файл прямого доступа может быть прочитан и записан практически одновременно.

Close # идентификатор файла - закрывает файл.

Каждая запись в файле имеет номер записи. Это позволяет работать с конкретной записью. При описании записи задаются пользовательским типом:

Type Books

Auther As String *30

Title As String *40

End Type

Запись, содержащую пятой записи файла в переменную:

Get #FileNum, 5, NewBook (если NewBook типа Books)

Запись из переменной в сороковую запись файла:

Print #FileNum, 40, NewBook

Созданные типы записей определяют размер файла прямого доступа. Размер файла определяется функцией FileLen (“имя файла”). Размер записи Len(NewBook) в байтах.

Двоичные файлы

Двоичные файлы - частный случай файлов произвольного доступа, однако размер в них равен 1. Вы оперируете байтами и всегда можно записать или прочитать любой байт файла, указав лишь его позицию в файле. В режиме двоичного доступа можно открыть как последовательный файл, так и файл прямого доступа. Можно одновременно и читать, и записывать в файл.

Имеются следующие операторы:

Открытие - Open “имя файла” For Binary As #FileNum

Запись в файл - Put #FileNum, № байта в файле, имя переменной для записи в файл

Чтение из файла - Get #FileNum, № байта в файле, имя переменной для записи в файл.

Доступ к данным в VB

VB предоставляет средства доступа к данным, которые дают возможность создавать и использовать системы БД, управляющих данными приложения.

VB позволяет обращаться к базам данных многих популярных форматов: MS Access, Btrieve, dBase, FoxPro, Paradox, а также базам данных ODBS систем клиент-сервер, таким как MS SQL Server.

В стандартной редакции VB инструменты работы с данными включают:

а) процессор БД Microsoft Jet;

б) элемент управления Data;

в) объектный интерфейс программирования Dao (Data Access Objects).

Два последних инструмента обеспечивают два методв взаимодействия с процессором Jet.

Элемент управления Data дает ограниченные возможности обращения к существующим базам данных практически без программирования. Модель DAO - программный интерфейс, обеспечивающий полный контроль над БД. Это коллекция объектных классов, которые моделируют структуру реляционной БД. Они обеспечивают свойства и методы, которые позволяют выполнять все операции с БД, такие как создание БД, определение таблиц, полей и индексов, установление отношений между таблицами, запросы в базах данных.

Процессор Jet транслирует эти операции в процессе выполнения. Он транслирует запросы приложения в физические операции по обработке файлов БД. Он читает, записывает и изменяет базу данных, выполняет индексацию, блокировку, защиту. Он также принимает запросы SQL, в соответствии с которыми выполняет требуемые действия в базе данных, и обрабатывает результаты, возвращаемые запросами.