Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Часть_1.doc
Скачиваний:
23
Добавлен:
20.04.2015
Размер:
462.85 Кб
Скачать

4. Алгоритмический язык Visual Basic – более сложные структуры

4.1. Файловый ввод и вывод - общие сведения

При работе со сложными программами может потребоваться ввод и вывод большого количества информации, которая может не поместиться на экране монитора. Это причиняет явное неудобство. Кроме того, сложная программа может быть построена в виде последовательности нескольких программ, каждая из которых должна после своей работы передавать результаты другой программе. Для организации ввода и вывода информации в этих случая используются файлы данных. Файлом называется блок информации, имеющий определенное имя и размещенный в памяти компьютера. Файлы бывают текстовые и кодовые (их называют также бинарными). Текст программы после его сохранения в памяти также является файлом. Файлы различаются по типу операции (ввод или вывод).

4.2. Организация работы с файлом.

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

Строка открытия имеет следующий вид:

Open [полное имя файла] for [ввод или вывод] as #[номер файла]

Полное имя файла это строка символов, указывающая путь к файлу, начиная с имени диска и заканчивая собственным именем файла. Ввод или вывод указывается словами InputилиOutput. СловоAppend, употребленное на том же месте, означает вывод с добавлением информации в имеющийся файл. Номер файла – целое число от 1 до 255.

Пример 4.1

Пусть требуется ввести из файла матрицу размером 3 на 4, умножить ее элементы на число 3 и вывести в другой файл. Назовем вводной файл inp4_1.txt(имя произвольно), запишем в него матрицу и поместим его в личную папку. Файлinp4_1.txtимеет следующий вид:

23, 45, 57, 189

12, 451. 573, 3

33, 44, 555, 8

Все файлы сохраняются автоматически в текстовом формате.

Программа, решающая указанную выше задачу, приведена ниже. Обратите внимание на знак апострофа “ ’ ”, поставленный перед комментарием. Строка, начинающаяся с апострофа, не исполняется (не является оператором) и служит для пояснений в тексте программы.

Private Sub Command1_Click()

'Ex 4_1

' Описание двумерных массивов matr и m1

Dim matr(3, 4) As Integer ' Описание двумерных массивов matr и m1

Dim m1(3, 4) As Integer

' Открытие файла inp4_1.txt для чтения (ввода)

Open "F:\Tout_le_VB6\My_files\inp\inp4_1.txt" For Input As #1

For i = 1 To 3

For j = 1 To 4

Input #1, matr(i, j) ' Ввод элементов матрицы из файла

Next j

Next i

Close #1

For i = 1 To 3

For j = 1 To 4

matr(i, j) = 3 * matr(i, j) ' Умножение матрицы на число 3

m1(i, j) = matr(i, j)

Next j

Next I

' Открытие файла out4_1.txt для записи (вывода)

Open "F:\Tout_le_VB6\My_files\out\out4_1.txt" For Output As #2

For i = 1 To 3

For j = 1 To 4

Print #2, m1(i, j); ' Вывод в файл новых элементов матрицы

Next j

'Write #2,

Print #2,

Next i

Close #2

End Sub

Выводной файл out4_1.txt(имя произвольно) записан по указанному пути. Файлout4_1.txtимеет следующий вид:

69 135 171 567

36 1353 1719 9

99 132 1665 24

После считывания информации из файла или после ее записи в файл, открытый оператором Open, файл нужно закрыть оператором Close #n (n – номер файла).

При записи файла в среде Visual Basic 6.0 в конце его автоматически добавляется специальный код - признак конца записи End of file (сокращенно EOF). Если программа считывания запрашивает больше строк, чем их имеется в файле – возникает сообщение об ошибке: “Input past end of file”. Чтобы этого избежать, можно использовать функцию EOF(n), аргумент которой n есть номер файла. Значение этой функции равно -1, если конец файла обнаружен и нулю в противном случае.

Предположим, что в примере 4.1 программа должна обеспечить ввод различных матриц, отличающихся числом строк. Тогда ввод очередной матрицы следует сделать так, как показано в примере 4.2 (предполагается, что максимальное число строк равно 10).

Пример 4.2

Private Sub Command1_Click()

' Ex4_2

Dim matr(10, 4) As Integer

Open "F:\Tout_le_VB6\My_files\inp\inp4_1.txt" For Input As #1

For i = 1 To 10

If EOF(1) Then Exit For ' Выход из цикла i

For j = 1 To 4

Input #1, matr(i, j)

Next j

Next i

Close #1

Print "Файл прочитан"

For i = 1 To 10

For j = 1 To 4

Print matr(i, j);

Next j

Print

Next i

End Sub

Если в файле окажется больше 10-и строк, то будут прочтены первые десять.

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