Введение в программирование на VBA - eDrive
Введение в программирование на VBA - eDrive Введение в программирование на VBA - eDrive
36 лексему ByVal, настраивающую функцию на работу не с адресами, а со значениями аргументов. Лексема ByRef возвращает передачу ссылок на адреса. А если передача аргументов в функцию необязательна, в списке аргументов такой функции используются лексемы Optional и Paramarray. Примеры Sub ТеоремаПифагора () MsgBox Sqr (СуммаКвадратов (2, 3) ) End Sub Function СуммаКвадратов (катет1, катет2) СуммаКвадратов = катет1 ^ 2 + катет2 ^ 2 End Function Const pi = 3.14159 Sub Круг () радиус = InputBox ("Введите радиус") длина = РасчетДлины (радиус) радиус1 = радиус ' радиус удвоен площадь = РасчетПлощади (радиус) радиус2 = радиус ' радиус не изменился MsgBox "Длина окружности радиусом " & радиус1 & " равна " _ & длина & Chr (13) & "Площадь круга радиусом " & _ радиус2 & " равна " & площадь End Sub Function РасчетДлины (переменная, Optional текст = "Удвоенный радиус") переменная = переменная * 2 ' в расчете используется удвоенный радиус РасчетДлины = 2 * pi * переменная MsgBox текст End Function Function РасчетПлощади (ByVal Переменная) переменная = переменная / 2 ' используется уменьшенный радиус РасчетПлощади = pi * переменная ^ 2 End Function Файлы В Visual Basic различают три способа доступа к информации, размещенной в файлах накопителей: последовательный, прямой и двоичный доступ. В первом случае данные заносятся в файл и считываются строками, имеющими произвольную длину. Во втором случае строки имеют строго фиксированную длину, а запись и чтение возможны в произвольном порядке. В последнем случае организуется произвольный доступ к данным без разбивки их на строки.
37 Для ввода информации в файл и чтения файлов последовательного доступа служит группа файловых операторов и функций. Вначале файл открывается в памяти: Open имяФайла [For Input] [For Output] [For Random] _ [Access Read,Write] [Read] [Write] [Защита] _ As [#]Номер [Len=Длина] Затем данные заносятся в файл или читаются из него одним из следующих выражений: • Print #Номер [, форматированныйТекст] • Write #Номер [, неФорматированныйТекст] • Line Input #Номер, Переменная и файл закрывается: Close [#Номер,…] Прямой доступ позволяет находить нужные записи в файле, считывать и обновлять их, не перебирая для этого все записи. При этом оператор Open сопровождается лексемой Random и задает длину записи Len, то есть количество считываемых байтов: Get [#]Номер, [Запись], имяПеременной или записываемых байтов: Put [#]Номер, [Запись], имяПеременной Любой файл можно переименовать или удалить: • Name имяФайла As новоеИмя • Kill имяФайла Примеры Sub Имя () имяФайла = InputBox ("Файл ", "Введите имя файла", _ "мойФайл.txt", 100, 100) MsgBox имяФайла, vbInformation MsgBox ПоследовательныйДоступ (имяФайла), vbInformation End Sub Function ПоследовательныйДоступ (имяФайла) Open имяФайла For Output As 1 Print #1, "Тест для записи и чтения" Close 1 Open имяФайла For Input As 1 Line Input #1, тест
- Page 1 and 2: В. М. Водовозов Введ
- Page 3 and 4: Оглавление ИНФОРМА
- Page 5 and 6: 5 Единение знака и з
- Page 7 and 8: 7 клавиатурой и пр.,
- Page 9 and 10: 9 необходимый миним
- Page 11 and 12: 11 регламентируя пр
- Page 13 and 14: 13 правым щелчком по
- Page 15 and 16: 15 Удалить окна диал
- Page 17 and 18: 17 Для документиров
- Page 19 and 20: 19 Макрокоманда Имя
- Page 21 and 22: 21 языка Basic, утвержд
- Page 23 and 24: 23 • модули классов,
- Page 25 and 26: 25 конфигурацию кот
- Page 27 and 28: 27 Оператор Определ
- Page 29 and 30: 29 Функция Определе
- Page 31 and 32: 31 вызова ей передаю
- Page 33 and 34: 33 Переменные и авто
- Page 35: 35 Call Вызов Call Вызов
- Page 39 and 40: 39 • условные опера
- Page 41 and 42: 41 после Then лексемы,
- Page 43 and 44: 43 Традиционный опе
- Page 45 and 46: 45 Выражение […] Loop Un
- Page 47 and 48: 47 Тип данных, обозн
- Page 49 and 50: 49 MsgBox "НОД= " & a End Sub С
- Page 51 and 52: 51 Next MsgBox массив End Sub
- Page 53 and 54: 53 .процессор = "Pentium"
- Page 55 and 56: 55 Sub СвойстваФормы (
- Page 57 and 58: 57 объектов. Перетас
- Page 59 and 60: 59 .Enabled = False End With UserFo
- Page 61 and 62: 61 MsgBox "Введите четы
- Page 63 and 64: 63 Sub CommandButton1_Click () Comb
37<br />
Для <strong>в</strong><strong>в</strong>ода информации <strong>в</strong> файл и чтения файло<strong>в</strong> последо<strong>в</strong>ательного<br />
доступа служит группа файло<strong>в</strong>ых операторо<strong>в</strong> и функций. В<strong>на</strong>чале файл<br />
откры<strong>в</strong>ается <strong>в</strong> памяти:<br />
Open имяФайла [For Input] [For Output] [For Random] _<br />
[Access Read,Write] [Read] [Write] [Защита] _<br />
As [#]Номер [Len=Дли<strong>на</strong>]<br />
Затем данные заносятся <strong>в</strong> файл или читаются из него одним из следующих<br />
<strong>в</strong>ыражений:<br />
• Print #Номер [, форматиро<strong>в</strong>анныйТекст]<br />
• Write #Номер [, неФорматиро<strong>в</strong>анныйТекст]<br />
• Line Input #Номер, Перемен<strong>на</strong>я<br />
и файл закры<strong>в</strong>ается:<br />
Close [#Номер,…]<br />
Прямой доступ поз<strong>в</strong>оляет <strong>на</strong>ходить нужные записи <strong>в</strong> файле, считы<strong>в</strong>ать<br />
и обно<strong>в</strong>лять их, не перебирая для этого <strong>в</strong>се записи. При этом оператор Open<br />
сопро<strong>в</strong>ождается лексемой Random и задает длину записи Len, то есть<br />
количест<strong>в</strong>о считы<strong>в</strong>аемых байто<strong>в</strong>: Get [#]Номер, [Запись], имяПеременной<br />
или записы<strong>в</strong>аемых байто<strong>в</strong>: Put [#]Номер, [Запись], имяПеременной<br />
Любой файл можно переимено<strong>в</strong>ать или удалить:<br />
• Name имяФайла As но<strong>в</strong>оеИмя<br />
• Kill имяФайла<br />
Примеры<br />
Sub Имя ()<br />
имяФайла = InputBox ("Файл ", "В<strong>в</strong>едите имя файла", _<br />
"мойФайл.txt", 100, 100)<br />
MsgBox имяФайла, vbInformation<br />
MsgBox Последо<strong>в</strong>ательныйДоступ (имяФайла), vbInformation<br />
End Sub<br />
Function Последо<strong>в</strong>ательныйДоступ (имяФайла)<br />
Open имяФайла For Output As 1<br />
Print #1, "Тест для записи и чтения"<br />
Close 1<br />
Open имяФайла For Input As 1<br />
Line Input #1, тест