Open “Ведомость.txt” For Output As #1 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Open “Ведомость.txt” For Output As #1



Close #1

Программный код для кнопки «Добавить в файл»:

Open “Ведомость.txt” For Append As #1

Dim Наименование As String, Цена, Количество, Стоимость As Double

Наименование = TextBox1.Text

Цена = CDbl (TextBox2.Text)

Количество = CDbl (TextBox3.Text)

Стоимость = Цена * Количество

Textbox4.Text = Стоимость

Write #1, Наименование, Цена, Количество, Стоимость

Close #1

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

Программный код для кнопки «Печать из файла»

Open “Ведомость.txt” For Input As #1

Лист1.Activate

Rem Размещаем заголовок и шапку таблицы в 1 и 2 строки листа

Cells(1,2)= «Ведомость»

Cells(2,1)= «Наименование»

Cells(2,2)= «Цена»

Cells(2,3)= «Количество»

Cells(2,4)= «Стоимость»

i=2 ’Количество уже занятых строк

1: i=i+1 ’Переход к следующей пустой строке

Rem Считывает данные из файла и размещаем по ячейкам

Input #1, Наименование, Цена, Количество, Стоимость

Cells(i,1)= Наименование

Cells(i,2)= Цена

Cells(i,3)= Количество

Cells(i,4)= Стоимость

If Eof(1) Then Close #1 Else GoTo 1

Функция Eof() – логическая функция, которая принимает значение Истина, если достигнут конец файла (закрываем файл Close #1), и значение Ложь, если конец файла не достигнут (переходим к считыванию следующей строки). Обратите внимание, что в данном случае реализован цикл без использования операторов цикла.

Программный код для кнопки «Очистить»

TextBox1.Text= «»

TextBox2.Text= «»

TextBox3.Text= «»

TextBox4.Text= «»

TextBox1.SetFocus

Программный код для кнопки «Выход»

End

Проверьте работу программы.

 

 

Задание 6. Обработка одномерных и двумерных массивов

Теоретический материал к занятию:

1) массивы и их виды;

2) алгоритмы нахождения суммы, произведения, количества элементов массива, удовлетворяющих определенному условию;

3) алгоритмы нахождения максимального и минимального элементов массива и их номеров;

4) вывод элементов массива.

 

Задача 6.1. На предприятии работают 10 сотрудников. Даны одномерный символьный массив, содержащий фамилии, и двумерный вещественный массив, содержащий заработную плату всех сотрудников за каждый месяц прошлого года. Все данные размещены в ячейках электронной таблицы. Требуется найти:

1) среднюю зарплату по предприятию за год;

2) среднюю зарплату по предприятию за март;

3) максимальную зарплату указанного сотрудника;

4) фамилии сотрудников, получивших самую высокую зарплату в каждом месяце.

Решение.

Создайте файл с исходными данными. Для этого введите информацию в ячейки электронной таблицы, как показано на рисунке (Рис. 22).

Разработайте следующую форму пользователя (Рис. 23).

 

 

 

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

Private Sub UserForm_Initialize()

Dim i, j As Integer

For i = 1 To 10

Фамилия(i) = Cells(i + 1, 1)

For j = 1 To 12

Зарплата(i, j) = Cells(i + 1, j + 1)

Next j

Next i

End Sub

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

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

Dim Фамилия(10) As String



Поделиться:


Последнее изменение этой страницы: 2016-12-17; просмотров: 183; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.133.109.30 (0.005 с.)