Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VB_6.doc
Скачиваний:
97
Добавлен:
01.12.2018
Размер:
3.77 Mб
Скачать

9.6. Сравнительный пример работы с файлами.

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

Пусть требуется записать в файл данные о характеристиках жестких дисков разных фирм – производителей, затем прочесть записанные в файл данные и отобразить их в элементе MSFlexGrid на форме.

Текстовый файл:

В процедуре Command1_Click() объявляем переменные:

Dim naz As String*7, md As String*10, cpst%

Dim intrf As String*10, turn%, buf As Byte

Dim namf$, nf %, i%.

Здесь: naz - название фирмы – производителя;

md - модель диска;

cpst - емкость(Гбайт);

intrf - тип интерфейса;

turn - скорость вращения (об/мин);

buf - емкость буфера (Мбайт).

Задаем свойства элемента MSFlexGrid:

fg.Rows = 1: fg.Cols = 7

fg.FormatString = “^ № p/p |< Фирма |^ Модель |^ Емкость” _

“ |^Интерфейс |^ Скорость |^ Буфер “

Определяем номер свободного канала ввода / вывода:

nf = FreeFile

Вводим имя создаваемого файла с расширением txt (например, hdd.txt):

namf=InputBox(“Введите имя создаваемого файла с расширением txt”)

Открываем файл для создания:

Open CurDir$ & “\” & namf For OutPut As #nf

Файл будет создан в текущей директории, т.е. в папке проекта.

Заполняем файл данными и закрываем его:

Do

naz = InputBox(“Введите название фирмы - производителя”)

md = InputBox(“Введите модель жесткого диска”)

cpst = InputBox(“Введите емкость жесткого диска”)

intrf = InputBox(“Введите тип интерфейса”)

turn = InputBox(“Введите скорость вращения”)

buf = InputBox(“Введите объем буфера”)

Write #nf, naz, md, cpst, intrf, turn, buf

Loop Until MsgBox(“Продолжить ввод ?”, 36) = vbNo

Close #nf

Открываем наш файл для чтения, читаем из него данные и заносим их в MSFlexGrid:

Open CurDir$ & “\” & namf For InPut As #nf

i = 0

Do Until EOF(nf)

i = i +1: fg.Rows = fg.Rows + 1

InPut #nf, naz, md, cpst, intrf, turn, buf

fg.TextMatrix(i, 0) = i

fg.TextMatrix(i, 1) = naz

fg.TextMatrix(i, 2) = md

fg.TextMatrix(i, 3) = cpst

fg.TextMatrix(i, 4) = intrf

fg.TextMatrix(i, 5) = turn

fg.TextMatrix(i, 6) = buf

Loop

Close #nf

Файл произвольного доступа:

В разделе General формы объявляем пользовательский тип данных:

Private Type HardDisk

naz As String*7

md As String*10

cpst As Integer

intrf As String*10

turn As Integer

buf As Byte

End Type

В процедуре Command2_Click() объявляем переменные:

Dim hd As HardDisk, namf$, nf%, i%

Задаем свойства элемента MSFlexGrid:

fg.Rows = 1: fg.Cols = 7

fg.FormatString = “^ № p/p |< Фирма |^ Модель |^ Емкость” _

“ |^Интерфейс |^ Скорость |^ Буфер “

Определяем номер свободного канала ввода / вывода:

nf = FreeFile

Вводим имя создаваемого файла, например, hdd.dat:

namf=InputBox(“Введите имя созд. файла с расширением dat”)

Открываем файл, заполняем его данными и закрываем:

Open CurDir$ & “\” & namf For Random As #nf Len = Len(hd)

Do

With hd

.naz=InputBox(“Введите название фирмы-производителя”)

.md = InputBox(“Введите модель жесткого диска”)

.cpst = InputBox(“Введите емкость жесткого диска”)

.intrf = InputBox(“Введите тип интерфейса”)

.turn = InputBox(“Введите скорость вращения”)

.buf = InputBox(“Введите объем буфера”)

End With

Put #nf, , hd

Loop Until MsgBox(“Продолжить ввод ?”, 36) = vbNo

Close #nf

Теперь открываем наш файл для чтения, читаем из него данные и заносим их в MSFlexGrid:

Open CurDir$ & “\” & namf For Random As #nf Len = Len(hd)

kolzap = LOF(nf) \ Len(hd)

For i = 1 To kolzap

fg.Rows = fg.Rows + 1

Get #nf, , hd

fg.TextMatrix(i, 0) = i

With hd

fg.TextMatrix(i, 1) = .naz

fg.TextMatrix(i, 2) = .md

fg.TextMatrix(i, 3) = .cpst

fg.TextMatrix(i, 4) = .intrf

fg.TextMatrix(i, 5) = .turn

fg.TextMatrix(i, 6) = .buf

End With

Next i

Close #nf

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]