Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
310_1111.doc
Скачиваний:
3
Добавлен:
20.09.2019
Размер:
404.99 Кб
Скачать

4)Робота з текстовим файлом (уведення-виведення даних), приклад.

Текстові файли називають також файлами з послідовним доступом чи просто послідовними файлами. Так вони називаються тому, що запис і читання фрагментів даних при роботі з цими файлами робиться строго послідовно. Їх можна порівняти з аудіо чи відео записами на магнітофонній стрічці: для пошуку потрібного Вам місця на стрічці Ви змушені перемотувати стрічку і послідовно її переглядати (чи прослухувати).

Послідовні файли використовують для збереження інформації в текстовому форматі (у вигляді ланцюжка ASCII кодів). Вони можуть оброблятися будь-яким текстовим редактором.

5. Cls Dim i As Integer, j As Integer, n As Integer, m As Integer Dim a As Double INPUT "Kolichestvo strok:", n INPUT "Kolichestvo stolbtsov:", m Dim t(n, m) Randomize Timer For i = 0 To n - 1 For j = 0 To m - 1 t(i, j) = Int(Rnd * 10) Print t(i, j); Next j Print Next i Print For j = 0 To m - 1 a = 0 For i = 0 To n - 1 a = a + t(i, j) Next i Print a / n; Next j

6. dim a as string, b as string, c as string rs.movefirst a=rs.fields(1) rs.movelast b=rs.fields(2) msgbox a msgbox b c=a a=b b=c msgbox a msgbox b

Билет 21

1.Значение Empty означает, что переменная неициализирована, то есть ей еще ни разу не присваивалось никакого значения. Любая, только что созданая переменная имеет значение Empty. Обратите внимание, что Empty это не 0 и не пустая строка. Заметим, что после того, как переменной присвоено любое значение, вернуть ее в состояние Empty можно только явным присваиванием значения Empty .

Значение Nothing используется только с объектными переменными. Оно означает, что переменная не указывает ни на какой объект (в языках С/C++ это NULL, в Pascal/Delphi - NIL). Поскольку Nothing связано с объектами, то при его присваивании ключевое слово Set обязательно, иначе возникнет ошибка выполнения программы "Объектная переменная не задана ".

Значение Null чаще всего используется при работе с базами данных и означает, что переменная (снова!) ничему не равна. В первых версиях языка Basic этого значения не было. Потом, в связи с добавлением в язык средств работы с базами данных появилась необходимость добавить новое понятие.

Для проверки используются следующие встроенные функции: IsEmpty, IsNull, IsObject и операция Is, которая проверяет переменную на Nothing.

Функция IsEmpty возвращает True, если переменная равна Emtpy, то есть никогда не инициализировалась или она явно была очищена присваиванием значения Empty .

Функция IsNull возвращает True, если переменная равна Null. Такую переменную можно получить из поля базы данных, равного Null или явным присваиванием значения Null.

Функция IsObject возвращает True, если переменная ссылается на какой-либо объект или равна Nothing. Для того, чтобы проверить, пуста ли ссылка, используется операция Is. Обратите внимание, что Is не обязательно проверяет ссылку на Nothing. С ее помощью можно проверить эквивалентность ссылок. Другими словами, проверить, ссылаются ли две переменные на один и тот-же объект. Попытка сравнивать объектные переменные операцией равно (=) приведет к ошибке выполнения

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

Alignment - Определяет отображается ли текст текстового окна выровненным по левому краю, центрированным или выровненным по правому краю в пределах текстового окна

BackColor - Задает цвет фона текстового окна. Щелкните на палитре свойства BackColor что бы увидеть перечень общих цветов элементов управления Windows.

Locked - Определяет может ли пользователь редактировать текст в текстовом окне.

3.хз

4. Операторы ON ERROR и RESUME (Resume Next).

Перво-наперво, ошибку надо отловить. Сделать это можно с помощью оператора On Error. Однако сам по себе этот оператор работать не будет, это и логично, с отловленной ошибкой ведь надо что-то делать. Самое простой и безбашенный метод (кстати довольно эффективный, когда постоянно возникает ошибка, справиться с ней не можешь и это тебя достало) - присобачить к оператору On Error оператор Resume Next. Тогда получившийся оператор On Error Resume Next в случае возникновения ошибки возвратится в программу и передаст управление оператору, следующему за тем оператором, где возникла ошибка. Однако следует помнить, что On Error Resume Next действует во всей процедуре, и если процедура большая и сложная, то ошибка может возникнуть совсем в другом операторе, нежели ты ожидаешь. Она все равно будет обработана, VB перескочит на следующий оператор, а ты об этом ничего не узнаешь и будешь дня два ломать голову, почему не работает то-то и то-то, хотя все прописано в коде черным по-белому. Ну, тем не менее исправим наш код с использованием оператора On Error:

Private Sub Command1_Click() On Error Resume Next Open "aaa.txt" For Input As #1 Close #1 Form1.Print "Процедура кое-как завершена" Form1.Print "с помощью On Error Resume Next" Form1.Print "файл не считан, работать не с чем" End Sub

Текст в операторах Form1.Print написан условно, так как ясно, что он будет выводится независимо от того, есть ошибка или нет. Т.е на самом деле пользователь никакой реальной информации об ошибке не получит и поправить ничего не сможет. Иное дело, если мы к нашему On Error попробуем пристроить оператор безусловного перехода GoTo метка. На самом деле он унаследован от старого Бейсика и использовать его нужно крайне осторожно. Этот оператор отсылает ( в нашем случае, если возникла ошибка) к строке, помеченной меткой, но только внутри текущей процедуры. Положим следующую кнопку Command2 (ее назание GoTo метка) и в ней напишем процедуру Private Sub Command2_Click() Dim Msg As String On Error GoTo ErrorMark Open "aaa.txt" For Input As #1 Close #1 Exit Sub ErrorMark: Msg = "Ой, наверно файл куда-то запропал, попробуйте восстановить!?" MsgBox Msg, , "Караул, нет данных!" End Sub Таким образом, при возникновении ошибки оператор GoTo возвращает нас в программу к строке, помеченной меткой ErrorMark. Под ней пишутся операторы, которые выполняются для реакции программы (или юзера) на ошибку. Обратите внимание, чтобы они не выполнялись в случае, когда ошибки нет, перед меткой поставлен оператор Exit Sub, который прерывает выполнение процедуры, не дожидаясь оператора End Sub. В качестве реакции на ошибку у нас выводится MessageBox с советом для юзера. Обратите снова Ваше драгоценное внимание на то, что в сообщении я употребил слово "наверное". Реально при открытии файла могут возникать разные ошибки и я лишь только предполагаю, что у нас ошибка 53.  Как я говорил выше, в сложных и больших процедурах, чтобы не отлавливать ошибки в других операторах оператор GoTo метка. надо выключить. Для этого, после сомнительного оператора, могущего вызвать ошибку, надо вставить строку On Error GoTo 0 Тогда обработчик ошибок прекратит свою работу и ошибки в последующих операторах отслеживаться не будут. Если в подпрограмме обработки ошибок имеется возможность устранить причину ее возникновения, то надо вернуться на тот же оператор и снова его выполнить, уже без ошибки. Для этого подпрограмму обработки ошибок заканчивают оператором Resume. Если же надо перейти к другой строке, помеченной меткой, то программу обработки ошибок надо закончить оператором Resume метка. Ну а теперь перейдем к самому интересному - анализу ошибок.

5. Dim i As Integer, j As Integer, n As Integer, m As Integer INPUT "Kolichestvo strok:", n INPUT "Kolichestvo stolbtsov:", m Dim a(n, m) As Double Randomize Timer For i = 0 To n - 1 For j = 0 To m - 1 a(i, j) = Int(Rnd * 50 + 10) / 10 Print a(i, j); Next j Print Next i Print For i = 0 To n - 1 For j = 0 To m - 1 Print a(i, j) * 10 Mod 10; Next j Print Next i Print

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