Програмирование на Visual BasicРефераты >> Кибернетика >> Програмирование на Visual Basic
где Open, For. Append. Input. Output, As — ключевые слова.
Input — файл открывается для ввода.
Output — файл открывается для вывода. Append — устанавливает считывающе-записывающее устройство на конец файла и выводимая информация записывается в файл после существующих записей (при значении параметра Output выводимая информация записывается с начала файла, т.е. происходит перезапись файла, если в нем существовали записи). Имя_файла — имя файла (символьная константа или переменная) или путь. Имя файла в DOS и Windows 3.1 состоит из не более чем восьми буквенных (латинских) или цифровых символов (первый символ буква), за которым может следовать расширение, определяющее тип файла (VBPART3.DOC, Project. MAC). В Windows 95 допускаются длинные имена файлов до 255 символов, включая специальные символы (в русской версии для записи имени файла можно использовать русские буквы) Путь определяет местонахождение файла в иерархической системе каталогов (C:\CONF1G.SYS, C:\WINDOWS\VB). Номер файла — целочисленное выражение, значение которого должно лежать в диапазоне от 1 до 255 (присваиваемый файлу номер). Len — определяет размер буфера операций ввода-вывода (по умолчанию 512 Кб). Примеры: Open “С:\CONFIC.SYS” For Input As tt5 'открывается файл с именем CONFIG.SYS в директории С: для ввода и ему присваивается номер 5 Doc$ = “a:\Utilits\NC.DOC” присвоение значения константе Open Doc$ For Input A.s ft 5 'открытие файла NC.DOC на диске А: в директории Utilits для ввода, файлу присваивается номер 2 Open “Resulc. t:-:t “ For Output As tt7 'открытие файла для вывода. Если открывается для вывода несуществующий файл. то он создается при значениях параметров Append и Output. Если для ввода открывается несуществующий файл, то Visual Basic сообщает об ошибке. Если файл скрывается для вывода Visual Basic всегда создает новый файл, перезаписывая в него любой имеющийся на диске файл с тем же именем. Существование файла перед открытием можно проверить с помощью встроенной функции Dir$ (возвращает строку с копией имени файла, если указанный файл существует, либо пустую строку в противном случае). Пример. If Dir$(“FilePrim.Txt”) <> “” Then .Open “FilePrim.Txt” For Input As #12 End If После завершения операций ввода — вывода файл должен быть закрыт. Для этого используется оператор Close #номер_фачла где Close — ключевое слово; номер_ файла соответствует номеру в операторе Open. Для ввода информации из последовательного файла используется оператор Line Input #номер_файла, имя_переменной где Line Input — ключевое слово; номер_файла — номер файла, совпадающий с номером в операторе Open (вводится информация из открытого файла); имя_переменной — имя переменной, которая принимает значение записи файла, типа String или Variant. При выполнении оператора считывается одна запись файла и помещается в ячейку оперативной памяти, адрес которой соответствует имени переменной в операторе ввода (переменная получает значение, совпадающее с введенной записью файла). Последовательное выполнение операторов ввода обеспечивает последовательное считывание записей файла. Встроенная функция EOF (аббревиатура английских слов End Of File - конец файла) позволяет проверять при чтении файла: достигнут конец файла или нет. Значением аргумента функции EOF является номер считываемого файла. Функция возвращает значение True, если достигнут конец файла, и False - в противном случае. Пример. Dim FileYura, Sr.rokaVvoda As String 'объявление символьных переменных Open FileYura For Input As #5 'открытие файла FileYura для ввода Do While Not EOF(5)'цикл последовательного чтения 'записей файла пока не достигнут конец Line Input #5, StrokaVvoda'ввод считанной записи 'в переменную StrokaVvoda LineRead StrokaVvoda 'обращение к 'процедуре обработки строки LineRead 'аргументом которой является переменная StrokaVvoda Loop Close #5 'закрытие файла Для вывода информации в последовательный файл используется оператор {Print* Write} ”номер_файла,[[{8рс(ч) |Tab(n)}] [ выражение}[{,\;}}} где Print, Write — ключевые слова. Print# — обеспечивает вывод в последовательный файл в формате дисплея (т.е. аналогично выводу на печать, например, на форме). выражение - выражение, значение которого записывается в файл. Если выражения разделяются “;”, то в файл они записываются без пробелов слитно. Если выражения разделяются “,”, то в файл они записываются в фиксированные зоны длиной 14 символов (зонный формат). Если в конце выражения не стоит “;” или “,”, то выведенная в файл строка дополняется символами <CR>, обозначающими переход к началу строки (carriage return, ASCII-код равен 13), и <LF>, обозначающими переход на другую строку (line feed, ASCII-код равен 10). Т.о. каждому значению соответствует одна запись или одна строка при выводе в формате дисплея. Spc(n) и ТаЬ(п) определяют соответственно вставку п пробелов между выводимыми выражениями и табуляцию на п колонок перед списком выражений. Для удаления с дискового пространства неиспользуемого файла используется оператор Kill имя_файла где Kill — ключевое слово. В заключение следует отметить, что данные любого типа (Boolean, Data, Integer, Single, Double, Currency) записываются в файл в символьной форме. При выводе данные преобразуются к символьной форме, при вводе происходит их преобразование к первоначальному типу, па что затрачиваются ресурсы компьютера. Кроме того. представление данных в символьной форме неэффективно. Например, число 421596 типа Single -занимает в памяти компьютера 4 банта, но при записи в последовательны” файл - 7 байт: 1 байт па каждый символ. Для того чтобы считать требуемую запись в последовательном файле необходимо последовательно пройти все предыдущие записи; чтобы изменить одну запись в файле, необходимо переписать весь файл заново. От этих недостатков свободны файлы прямого доступа. Пример программы. В первой части процедуры обработки события щелчка мыши по форме в файл TE5TFILE выводятся строки символов с использованием оператора Print# (вывод в формате дисплея). Во второй части процедуры записи этого файла читаются и выводятся в окно вывода в том виде, как они записаны в файле. Текст процедуры: Пример программы. Программа осуществляет преобразование текстового файла последовательною доступа распаковкой его строк таким образом, чтобы каждая цепочка символов “*п”, где п — однозначное целое число (число пробелов), заменялась указанным числом пробелов. Ввод исходных данных и управление работой программы осуществляется на форме на рис. 3.24. На форме располагаются:
- командная кнопка “Ввод” (имя — Command 1), щелчок мыши по которой активизирует окно ввода (имя — Textl). Вводимая информация записывается в файл последовательного доступа:
- командная кнопка “Вывод” (имя — Commands), щелчок мыши по которой обеспечивает вывод записей файла в многострочном текстовом окне (имя Text2):
- командная кнопка “Преобразование” (имя — Command2), щелчок мыши по которой обеспечивает чтение записей файла, их преобразование в соответствии с заданием и запись новых записей в другой файл:
- командная кнопка “Вывод” (имя — Command4). щелчок мыши по которой обеспечивает вывод записей повою файла в многострочном текстовом окне (имя Textl);
- щелчок мыши по кнопке “Конец” прекращает выполнение программы.