Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР №1 Э11-21.doc
Скачиваний:
6
Добавлен:
03.08.2019
Размер:
2.52 Mб
Скачать

Текстовые (ascii) и бинарные (двоичные) файлы

Текстовые файлы удобны для восприятия человека, но не настолько эффективны с точки зрения затрат компьютерного времени и объема занимаемой памяти, как бинарные файлы.

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

Так, в случае кодировки ASCII текстовый редактор прочитает последовательность цифр 72 101 108 108 111 (десятичные значения) как слово «Hello».

При считывании из текстового файла значения переменной числового типа, допустим Integer, система ожидает ввода последовательности символов, которые потом можно преобразовать в целое число. Например, если текстовый файл содержит символы 2, 3 и 4, то при считывании этих символов в целочисленную переменную x система преобразует их во внутреннее представление целого числа «234» и присвоит его переменной x. Таким образом, текстовый файл содержит ASCII-коды символов 2, 3 и 4, т.е. десятичные числа 50, 51 и 52, соответствующие этой кодировке. В бинарном виде числу 234 будет соответствовать двоичное число, представленное на рис. 1.9, а. При считывании этих кодов в целочисленную переменную x она будет содержать внутреннее двоичное представление целого числа 234, рис. 1.9, б. Следовательно, представление чисел в текстовом файле отличается от представления соответствующих целых чисел в памяти компьютера.

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

00110010

00110011

00110100

2

3

4

– символьный эквивалент

(то, что видим на экране)

б) Числовая переменная x:

0000000011101010

234

– десятичный эквивалент

Рис. 1.9. Двоичная система кодирования: а) двоичное представление ASCCI символов 2, 3, 4, содержащихся в текстовом файле; б) внутреннее двоичное представление целого числа 234

Объявление переменных и констант

Объявление типа переменных имеет следующий синтаксис:

Dim имя_переменной [As тип­_переменной]

С помощью одного оператора можно объявить сразу несколько переменных, например:

Dim i As Integer, str As String

В начале программы желательно поместить директиву (указание компилятору) Option Explicit, запрещающую не описывать переменные. В этом случае при ошибке в имени переменной компилятор укажет на ошибку, и ее легко будет исправить.

Формат объявления констант — переменных, значения которых не меняются в процессе выполнения программы:

Const имя_константы [As тип] = значение_константы

Присваивание переменным значений:

[Let] имя_переменной = выражение

Ключевое слово Let в большинстве случаев не используется.

Преобразование типов данных

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

Val (строка$)

Отображение результата

Объект.Print [список печати]

Метод (оператор, а фактически подпрограмма) Print используется для печати на форме чисел и строк, а также значений числовых и строковых переменных и выражений, которые образуют список печати. В качестве разделителей списка печати используется либо запятая, либо точка с запятой. В первом случае элементы списка печатаются каждый в своей зоне (каждая зона имеет длину 14 символов), во втором случае элементы списка печатаются вплотную друг к другу.

Функции преобразования чисел из одной с/с в другую

Функции Str, Oct и Hex позволяют производить преобразование десятичных чисел в десятичные, восьмеричные и шестнадцатеричные числа в строковой форме. Аргументом функции является десятичное число, а значением — строка.

Str (число)

Oct (число)

Hex (число)

Файлы последовательного доступа

В Visual Basic предусмотрены три типа доступа к файлам:

  • последовательный доступ — для чтения и записи текстовых файлов, которых могут состоять из записей переменной длины, причем для доступа к какой-либо записи должны быть пройдены все предыдущие записи;

  • произвольный доступ — для чтения и записи файлов с записями, которые могут быть только одинаковой длины, переход к нужной записи возможен сразу;

  • двоичный доступ — для чтения и записи отдельных байтов файла.

Файлы последовательного доступа создаются различными программами для хранения и считывания информации. Работа с файлами включает этапы:

  • получение номера свободного канала ввода-вывода, с которым будет связан файл;

  • открытие файла;

  • чтение или запись данных;

  • закрытие файла.

Операции записи данных в файл и их считывания проводятся в одной программной конструкции Open ... Close. Ее формат имеет вид:

Open filename For mode As #fileno

операторы

Close fileno

Параметр filename определяет имя открываемого файла, а параметр mode — режим доступа. Он может иметь значения Append (Дополнение), Input (Ввод), Output (Вывод), Binary (Двоичный) и Random (Произвольный). Если параметр mode не указан, файл открывается в режиме произвольного доступа. Параметр fileno определяет так называемый файловый номер — целое число, по которому идентифицируется открываемый файл. Каждому открытому файлу система Visual Basic ставит в соответствие канал ввода-вывода с определенным номером. При выполнении операции ввода и вывода имеет значение не имя файла, а номер связанного с ним канала. Функция без аргументов FreeFile выдает (или, как говорят программисты, возвращает) следующий свободный номер файла).

Для записи данных (добавления) в последовательный файл необходимо открыть его в режиме (mode) Output (Append). Если файл не существует, Visual Basic автоматически создает его. Если же файл существует, то при его открытии в режиме Output существующие данные стираются, а в режиме Append новые записи добавляются в конец файла.

Запись в файл осуществляется оператором Print. Его формат:

Print #fileno, “Текст” [{,/;} переменные]

где “Текст” — текст в кавычках; (,) или (;) — разделители. Если стоит точка с запятой, то информация печатается в одну строку через пробел. Если указана запятая, то информация печатается в одну строку через табуляцию. Переменные — цифровая переменная или математическое выражение, например, х+20. или содержимое свойства «Текст» любого элемента управления, обладающего таким свойством.

{a/b} в описании операторов или функций означает выбор а или b,

[x] — необязательный элемент: может быть х или ничего.

Ниже приведен фрагмент программы, который создает в каталоге (папке) C:\data файл и записывает в него две строки:

Dim FileNo As Integer

FileNo = FreeFile

Open "C:\data\test.txt" For Append As FileNo

Print #FileNo, "Строка 1"

Print #FileNo, "Строка 2"

Close FileNo

Функция FreeFile возвращает наименьший свободный файловый номер, который будет использоваться в операторах Open, Print # и Close. Номер файла можно задавать вручную в виде числа или переменной, но при этом надо знать, какие номера свободные.

Комментирование кода

Комментарием называется текстовая строка, начинающаяся с апострофа. Он не содержит программного кода. Следует комментировать наиболее сложные фрагменты программ, а также те места, к которым необходимо привлечь внимание читателя. Комментарии предназначены исключительно для программиста, Visual Basic игнорирует их во время выполнения приложения.

Чтобы включить в процедуру комментарий, необходимо ввести в начале комментирующего текста символ «апостроф» ('):

'Строка комментария

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

  1. Запустим Visual Basic. Создадим новый проект командой [File > New > Standart].

  2. Создадим графический интерфейс будущего приложения. Поместим с помощью Панели инструментов на форму в окне Конструктора форм управляющие элементы и присвоим им имена: три текстовых поля TextBox (txtZn1, txtZn2, txtRez), три текстовых поля Label (lblZn1, lblZn2, lblRez) и пять командных кнопок CommandButton (cmdAdd, cmdSub, cmdMult, cmdDiv, cmdExit).

Зададим новые значения свойств управляющих элементов. Установим для свойства Caption формы значение «Простейший калькулятор». Для свойств Caption кнопок cmdAdd, cmdSub, cmdMult, cmdDiv, cmdExit – «+», «-», «*», «/» и «Выход» соответственно. Для свойств Caption элементов lblZn1, lblZn2, lblRez – «Значение 1», «Значение 2» и «Выход» соответственно.

На рис. 1.9 приведен пример интерфейса калькулятора.

Рис. 1.9

  1. Создадим событийные процедуры для используемых кнопок таким образом, чтобы значением свойства Text элемента управления txtRez являлась арифметическая операция (+, -, *, /) над числовыми значениями свойств Text элементов txtZn1, txtZn2. Для кнопки cmdExit создается событийная процедура завершения работы приложения.

Для выполнения арифметических операций с указанными значениями свойств необходимо преобразовать строковые значения, вводимые в текстовые поля, в десятичные числа. Воспользуемся функцией Val. Тогда событийные процедуры результатов арифметических выражений будут иметь вид:

'Выполнение сложения двух чисел

Private Sub cmdAdd_Click()

txtRez.Text = Val(txtZn1.Text) + Val(txtZn2.Text)

End Sub

'Выполнение разности двух чисел

Private Sub cmcSub_Click()

txtRez.Text = Val(txtZn1.Text) - Val(txtZn2.Text)

End Sub

'Выполнение умножения двух чисел

Private Sub cmdMult_Click()

txtRez.Text = Val(txtZn1.Text) * Val(txtZn2.Text)

End Sub

'Выполнение деления двух чисел

Private Sub cmdDiv_Click()

txtRez.Text = Val(txtZn1.Text) / Val(txtZn2.Text)

End Sub

Событийная процедура выхода из приложения:

'Выход

Private Sub cmdExit_Click()

End

End Sub

  1. Далее запустим проект на выполнение с помощью команды Start на Панели инструментов или командой [Run > Start] из Главного меню.

Введем числа в текстовые поля txtZn1, txtZn2 и выберем одну из арифметических операций (cmdAdd, cmdSub, cmdMult, cmdDiv). В поле txtRez будет выведен результат. Для завершения работы приложения нажмем кнопку «Выход».