Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Традиционный подход при работе с файлами



Лабораторная работа №13.

Тема: Файлы в Visual Basic.

I. Изучить учебную, методическую, специальную литературу по теме лабораторной работы. Составить аннотированный список литературы. Выделить основные понятия данной темы. Подобрать систему вариативных заданий для усвоения основных понятий данной темы. Разработать методику обучения технологическим приемам решения задач по данной теме.

II. Задачи.

1. Написать программу, которая позволяет создавать в вашей папке текстовый файл с нужным именем (имя файла вводится с клавиатуры), добавлять информацию в файл (файл выбирается с использованием элементов управления DirListBox, FileListBox или DriveListBox), удалять информацию из файла, удалять файл из папки.

2. Создать проект «Телефонная книга». Данный проект должен предоставлять возможность работы с файлом произвольного доступа, в котором содержится следующая информация об абонентах:

- фамилия

- имя

- телефон

- адрес.

При этом можно осуществить следующие операции:

- поиск номера телефона по фамилии абонента;

- поиск фамилии, имени и адреса абонента по номеру телефона.


Теоретическая часть.

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

В Visual Basic 6 существует понятие типа файла, который определяется организационной структурой хранения информации в файле и способом доступа к этой информации. Принято выделять следующие типы файлов.

Файлы последовательного доступа. Как правило, это текстовые файлы или аналогичные им. Такие файлы представляют собой последовательность символов. При этом данные могут быть с разделителями или без разделителей, то есть содержание файла может иметь некую структуру. Структурной единицей содержимого в подобных файлах, как правило, является строка. Примерами этих файлов могут служить текстовые файлы и файлы инициализации программ.

Файлы произвольного доступа. Это структурированные файлы, которые содержат информацию в виде записей. Примером могут служить файлы баз данных.

Двоичные (бинарные) файлы. Файлы с побайтным доступом. В принципе, это те же файлы с последовательным доступом, но информация в них не организована в строки. Особенность данных файлов — работа с байтами или блоками байтов. К таким файлам можно отнести выполняемые программы, файлы динамических библиотек, файлы документов Word.

Подобное деление файлов на типы достаточно условно и определяется особенностями организации файлов и доступа к данным в них. Например, файл с последовательным доступом можно открыть и в режиме двоичного доступа. Если этот файл имеет разделители, то для работы с ним придется написать специальную процедуру обработки разделителей и разбора данных, так как двоичный доступ обеспечивает побайтную запись/чтение из файла. Очевидно, что это неудобно. Именно поэтому и введено условное деление файлов на типы в зависимости от формата файла и доступа к данным. Соответственно сгруппированы и функции Visual Basic для записи/чтения данных.

 

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

Закрытие файлов

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

Close [номер_файла1, номер_файла2, …]

где номер_файла1, номер_файла2, … — список закрываемых файлов, представленных номерами файлов. При этом номер файла аналогичен номеру файла в функции Open.

Если список файлов не указан, оператор Close закрывает все открытые файлы.

Работа с файлами последовательного доступа

Файлы последовательного доступа — это, как правило, текстовые файлы, то есть последовательности ASCII-символов, организованные в строки.

При открытии файлов последовательного доступа возможны три режима доступа:

· Input — открыт для последовательного чтения данных;

· Output — открыт для последовательной записи данных, при этом информация записывается всегда с начала файла (предыдущая затирается, если в файле уже что-то записано);

· Append — открыт для добавления данных к уже имеющимся в файле.

Рис. 1. Пример файла последовательного доступа

Чтение данных

Чтение данных из файла последовательного доступа выполняется с помощью функции Input и операторов Input # и Line Input #. Рассмотрим эти функции и операторы.

Функция Input имеет следующий синтаксис:

Input(количество_символов, #номер_файла)

где:

· количество_символов — целое число, которое задает количество считываемых из файла символов;

· номер_файла — номер файла, аналогичный номеру файла в операторе Open.

Функция Input считывает из файла заданное количество символов и обычно используется для чтения данных, записанных в файл оператором Print #.

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

Если в программе требуется прочитать данные из файла, в котором информация в строках имеет структуру с разделителями (в качестве разделителей используются запятые), необходимо применить оператор Input #:

Input #номер_файла, имя_переменной1, имя_переменной2, …

где:

· номер_файла — номер файла, аналогичный номеру файла в операторе Open;

· имя_переменной1, имя_переменной2, … —список переменных.

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

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

Для построчного чтения данных из последовательного файла применяется оператор Line Input #. Синтаксис этого оператора следующий:

Line Input # номер_файла, имя_переменной

где:

· номер_файла — номер файла, аналогичный номеру файла в операторе open;

· имя_переменной —имя переменной, куда будет считана строка из файла.

Оператор Line Input # посимвольно считывает всю строку данных из файла и помещает ее в строковую переменную. При этом разделителем строк в файле служит стандартный разделитель строк символ возврата каретки CHR(13) или последовательность символов возврата каретки и перевода строки CHR(13) + CHR(10), причем в переменную эти разделители не вставляются.

Обычно оператор Line Input # используется в паре с оператором Print #.

Для того чтобы прочитать все данные из файла при помощи оператора Line Input #, необходимо организовать цикл чтения данных.

Например, откроем текстовый файл для чтения информации:

n=FreeFile

Open «C: \задача.txt» For Input As #n

Print #n, a

Close#n

 

 

Запись данных

Данные в файл последовательного доступа записываются с помощью операторов Print # и Write #. Оператор Write # дополнительно автоматически вставляет в файл разделители, но не дает гибкости при управлении форматированием данных. Как можно было заметить при изучении функций чтения данных, каждая из функций записи работает в паре с определенной функцией чтения. Для оператора Print # это функции Input или Line Input #, а для оператора Write # — это Input #.

Рекомендуется при применении операций записи/чтения данных из файлов использовать именно такие пары функций и операторов записи/чтения.

 

Рассмотрим оператор Print #. Он имеет следующий синтаксис:

Print #номер_файла, список

где:

· номер_файла — номер файла, аналогичный номеру файла в операторе Open;

· список — список выражений или переменных для записи.

 

Оператор Write # имеет следующий синтаксис:

Write #номер_файла, список

где:

· номер_файла — номер файла, аналогичный номеру в операторе Open;

· список — список выражений или переменных для записи.

При выполнении записи данных в файл оператор Write # после каждой строки автоматически вставляет символ перевода каретки CHR(13) и символ новой строки CHR(10).

 

Замечание

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

1. В новом программном модуле. Для добавления программного модуля в проект следует выполнить команду Add Module (Добавить модуль) из меню Project (Проект) и на вкладке New (Новый) появившегося диалогового окна Add Module выбрать значок с названием Module (Модуль).

2. В окне программного кода, где описаны все процедуры. Для этого перед служебным словом Type в описании пользовательского типа нужно указать служебное слово Private.

 

Открытие файла произвольного доступа

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

Open имя_файла [For Random] As номер_файла Len=длина

где:

· имя_файла — полное имя файла;

· номер_файла — номер файла;

· длина — длина записи в байтах. Если записывается строковая величина ее длину можно определить с помощью оператора Len, а если числовая - то исходя из того, сколькими байтами кодируется данный тип.

При использовании оператора Open для открытия файла произвольного доступа атрибут For не обязателен, так как в Visual Basic 6 этот параметр устанавливается по умолчанию. Как видно из синтаксиса, в отличие от файла с последовательным доступом, при открытии файла с произвольным доступом необходимо обязательно указывать длину записи.

Работа с двоичными файлами

Двоичный файл в корне отличается от файлов последовательного и произвольного доступа. Посмотрите на рисунок. Здесь в качестве примера двоичного файла с помощью редактора Notepad системы Windows открыт выполняемый файл Visual Basic 6.

Пример двоичного файла

Из рисунка видно, что нет смысла просматривать файл в чистом виде, его понимает только специальная программа. Двоичный файл не организован в строки, как файл последовательного доступа. Здесь нельзя выделить строки, записи или иную информационную структуру кроме байтов или блоков байтов.

Двоичный файл открывается только в двух режимах:

· Binary — двоичный доступ по номеру байта;

· Random —произвольный доступ.

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

Работа с двоичными файлами отличается большей свободой выполнения различных действий, чем с файлами последовательного доступа. В отличие от файлов последовательного доступа, двоичный файл открывается сразу и для чтения, и для записи.

 

Открытие двоичного файла

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

Open имя_файла For Binary As номер_файла

где:

· имя_фалйа полное имя файла;

· номер_файла — номер файла.

Работа с атрибутами файлов

Для работы с атрибутами файлов используются функции GetAttr и SetAttr. Синтаксис функции GetAttr, возвращающей атрибуты файлов, следующий:

GetAttr (имя_файла)

где имя_файла — путь, включающий имя файла, папку, устройство. По умолчанию применяется текущая папка и устройство.

Функция GetAttr возвращает число, которое определяет атрибуты файла. Интерпретировать это число можно при помощи параметров, описанных в табл. 3.

Т аблица 3. Константы атрибутов файлов

Константа Описание Значение
vbNormal Обычный файл
vbReadOnly Файл только для чтения
vbHidden Скрытый файл
vbSystem Системный файл
vbDirectory Каталог (папка)
vbArhive Архивный файл

 

Аналогично работает функция setAttr, выполняющая установку атрибутов файлов. Синтаксис этой функции следующий:

SetAttr имя_файла, атрибуты

где:

· имя_файла — путь, включающий имя файла, папку, устройство. По умолчанию используется текущая папка и устройство;

· атрибуты— число или выражение, задающее сумму атрибутов.

Замечание

В функции SetAttr используются все константы, описанные в табл. 3, кроме константы vbDirectory.

Для того чтобы задать несколько атрибутов, можно просто просуммировать указанные константы. Например, для установки атрибутов файла Hidden и Read-only необходимо использовать функцию setAttr следующего вида:

SetAttr " MyFile", vbHidden + vbReadOnly

При этом для файла MyFile будут установлены атрибуты Hidden и Read-only.

 

В языке Visual Basic у разработчика имеются широкие возможности работы с файловой системой, которые представляют изученный ранее диалоги Common Dialog, набор файловых операторов и функций, а также файловые элементы управления.

Существует три файловых элемента управления:

1. DriveListBox (Список дисков)

2. DirListBox (Список каталогов)

3. FileListBox (Список файлов)

DriveListBox (Список дисков) . Данный элемент управления представляет собой ниспадающий список, в котором по умолчанию отображается диск, являющийся текущим. Если в процессе работы приложения пользователю нужно сменить обозначение диска, то сделать это можно двумя способами. Во-первых, при помощи мыши раскрыть список, щёлкнуть на стрелке в правой части объекта, с последующим выбором требуемого элемента. Во-вторых, задать нужное название, используя для этого стрелки управления курсором, когда объект имеет фокус.

Имеется возможность задать программным образом диск, который будет использоваться по умолчанию, т.е. который будет являться текущим при запуске приложения. Для этого следует воспользоваться свойством Drive (Устройство), присвоив ему соответствующее значение в процедуре загрузки главной формы Form_Load, например:

Private Sub Form_Load()

Drive1.Drive=”C: ”

End Sub.

 

DirListBox (Список каталогов) . Этот элемент управления представляет собой древовидную структуру, отображающую каталоги того диска, который на данный момент является текущим. Первым элементом списка является текущий диск, под которым расположены находящиеся в нём каталоги, смещённые на одну позицию вправо (корневой каталог). Если пользователь открывает один из них при помощи двойного щелчка мыши, то в этом случае список изменяется таким образом, что в нём после названия текущего каталога отображаются только название его подкаталогов, смещённые ещё на одну позицию вправо (каталог первого уровня) и т.д.

Слева от каждого элемента списка находится изображение папки. Если каталог открыт, то папка отображается раскрытой и наоборот.

Так же, как и при работе с дисками, можно установить каталог, который будет являться текущим, используя свойство Path (Путь) для элемента DirListBox, например:

Private Sub Form_Load()

Dir1.Path=”C: \Мои документы”

End Sub

С другой стороны, если значение свойства Path присвоить какой-либо переменной, то в ней будет храниться путь к выбранной папке.

a=Dir1.Path

Например, для случая, показанного на рисунке a=«G: \vb\Book.Basic_for_beginning».

Так как элемент управления DirListBox представляет собой список, то для него так же, как и для обычных списков, имеется возможность доступа к элементам и их обработки с помощью свойств List (Список), ListIndex (Текущий элемент списка), ListCount (Количество элементов в списке). Однако имеется глобальное различие в системе, используемой для обработки значения свойства ListIndex.

Для каталога, путь к которому совпадает со значением свойства Path элемента управления DirListBox, свойство ListIndex всегда равно -1, независимо от того, на каком уровне он расположен. Каталог, расположенный на один уровень выше текущего, имеет свойство ListIndex, равное -2, и т.д. Завершением этой последовательности является корневой каталог текущего диска.

Соответственно, первый по порядку подкаталог текущего каталога, имеет свойство ListIndex, равное 0. Для второго по счёту каталога ListIndex=1 и т.д.

Значением свойства ListCount для выбранного каталога является количество его подкаталогов.

FileListBox (Список файлов) . Данный элемент управления представляет собой список, отображающий файлы, которые располагаются в каталоге, указанном в свойстве Path. Как правило, этот объект используется вместе со списком каталогов (DirListBox), поэтому, когда пользователь в приложении выбирает нужный ему каталог, то в программе при этом должен выполняться следующий оператор присваивания:

File1.Path=Dir1.path

В данном случае для выбранного пользователем каталога будет автоматически отображаться список содержащихся в нём файлов.

Для того, чтобы ограничить количество выводимых файлов каким-то именем, расширением и т.д. (т.е. шаблоном), необходимо воспользоваться свойством Pattern, которое позволяет задать один или несколько шаблонов. При этом следует заметить, что в последнем случае в качестве разделителя используется точка с запятой, например:

File1.Pattern=”*.txt; *.exe”

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

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

‘а – переменная, в которой хранится путь

Dim a As String

‘работа с файлом

Private Sub Command1_Click()

Open a For Output As #1

Print #1, " 5"

Close #1

End Sub

‘согласование работы объектов DirListBox и FileListBox, чтобы содержимое списка файлов соответствовало выбранной папке

Private Sub Dir1_Change()

File1.Path = Dir1.Path

End Sub

‘контструирование полного пути из имени файла и пути к папке, где он размещен

Private Sub File1_Click()

a = File1.Path + " \" + File1.FileName

End Sub

 

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

1- None (можно выделить только один файл);

2 - Simple (при каждом щелчке в группу добавляется вы­деленный файл или удаляется из нее, если он ужё был в группе);

3 - Extended (выделение файлов осуществляется так же, как и в программе Проводник - с использованием клавиш Shift и Ctrl).

Лабораторная работа №13.

Тема: Файлы в Visual Basic.

I. Изучить учебную, методическую, специальную литературу по теме лабораторной работы. Составить аннотированный список литературы. Выделить основные понятия данной темы. Подобрать систему вариативных заданий для усвоения основных понятий данной темы. Разработать методику обучения технологическим приемам решения задач по данной теме.

II. Задачи.

1. Написать программу, которая позволяет создавать в вашей папке текстовый файл с нужным именем (имя файла вводится с клавиатуры), добавлять информацию в файл (файл выбирается с использованием элементов управления DirListBox, FileListBox или DriveListBox), удалять информацию из файла, удалять файл из папки.

2. Создать проект «Телефонная книга». Данный проект должен предоставлять возможность работы с файлом произвольного доступа, в котором содержится следующая информация об абонентах:

- фамилия

- имя

- телефон

- адрес.

При этом можно осуществить следующие операции:

- поиск номера телефона по фамилии абонента;

- поиск фамилии, имени и адреса абонента по номеру телефона.


Теоретическая часть.

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

В Visual Basic 6 существует понятие типа файла, который определяется организационной структурой хранения информации в файле и способом доступа к этой информации. Принято выделять следующие типы файлов.

Файлы последовательного доступа. Как правило, это текстовые файлы или аналогичные им. Такие файлы представляют собой последовательность символов. При этом данные могут быть с разделителями или без разделителей, то есть содержание файла может иметь некую структуру. Структурной единицей содержимого в подобных файлах, как правило, является строка. Примерами этих файлов могут служить текстовые файлы и файлы инициализации программ.

Файлы произвольного доступа. Это структурированные файлы, которые содержат информацию в виде записей. Примером могут служить файлы баз данных.

Двоичные (бинарные) файлы. Файлы с побайтным доступом. В принципе, это те же файлы с последовательным доступом, но информация в них не организована в строки. Особенность данных файлов — работа с байтами или блоками байтов. К таким файлам можно отнести выполняемые программы, файлы динамических библиотек, файлы документов Word.

Подобное деление файлов на типы достаточно условно и определяется особенностями организации файлов и доступа к данным в них. Например, файл с последовательным доступом можно открыть и в режиме двоичного доступа. Если этот файл имеет разделители, то для работы с ним придется написать специальную процедуру обработки разделителей и разбора данных, так как двоичный доступ обеспечивает побайтную запись/чтение из файла. Очевидно, что это неудобно. Именно поэтому и введено условное деление файлов на типы в зависимости от формата файла и доступа к данным. Соответственно сгруппированы и функции Visual Basic для записи/чтения данных.

 

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

Традиционный подход при работе с файлами

Традиционный подход при работе с файлами остается неизменным практически с самых первых версий Visual Basic и заключается в использовании функций и операторов, обеспечивающих прямой доступ к информации в файлах. Функции и операторы, используемые при работе с файлами, приведены в табл.1. В столбце Тип файла этой таблицы приняты следующие сокращения типов файлов:

· П — файл последовательного доступа;

· Пр — файл произвольного доступа;

· Б — бинарный файл.

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

Таблица 1. Функции и операторы для работы с файлами

Функция, оператор Описание Тип файла
Open Открывает файл П, Пр, Б
Close Закрывает все файлы П, Пр, Б
Close # Закрывает файл по идентификатору (дескриптору) П, Пр, Б
Reset Закрывает все открытые файлы, записывает содержимое буферов П, Пр, Б
Print tt Записывает данные в файл П
FileCopy Копирует файл П, Пр, Б
EOF Определяет метку конца файла П, Пр, Б
FileAttr Возвращает режим доступа открытого файла П, Пр, Б
FileDateTime Возвращает дату и время создания файла П, Пр, Б
FileLen Возвращает размер файла в байтах П, Пр, Б
FreeFile Возвращает номер свободного идентификатора файла (дескриптора) П, Пр, Б
GetAttr Получает атрибуты файла П, Пр, Б
SetAttr Устанавливает атрибуты файла П, Пр, Б
Loc Возвращает номер текущей позиции в файле Пр, Б
LOF Возвращает размер открытого файла в байтах П, Пр, Б
Seek Устанавливает на заданную номером позицию или запись в файле П, Пр, Б
Dir Возвращает содержимое текущей папки П, Пр, Б
Kill Удаляет файл П, Пр, Б
Lock Блокирует файл при работе в многопользовательской среде П, Пр, Б
Unlock Снимает блокировку файла в многопользовательской среде П, Пр, Б
Name Задает (переименовывает) имя файла П, Пр, Б
Get # Читает данные из файла Пр.Б
Input Читает данные из файла П, Б
Input # Читает данные из файла П
Line Input # Читает строку из файла П
Put # Записывает данные в файл Пр, Б
Write # Записывает данные в файл П

 

Для удобства сгруппируем функции и операторы по выполняемому действию, как это принято в Visual Basic. Такое объединение удобно при выборе функции или оператора для выполнения необходимых действий с файлами (табл. 2).

Таблица 2. Функции и операторы для работы с файлами по группам

Выполняемое действие Функции, операторы
Открыть или создать файл Open
Закрыть файл Close, Reset
Определение параметров вывода данных Format, Spc, Tab, Width #
Скопировать файл FileCopy
Получить информацию о файле EOF, FileAttr, FlleDateTime, FileLen, FreeFile, GetAttr, Loc, LOF
Организовать управление файлами Dir, Kill, Lock, Unlock, Name
Прочитать данные из файла Get #, Input, Input ft, Line Input #
Получить информацию о размере файла FileLen
Установить атрибуты файла SetAttr
Найти позиции в файле Seek
Записать данные в файл Print tt, Put #, Write ft


Открытие файлов

Как было указано выше, работа с каждым из типов файлов имеет свои особенности. Однако есть два действия, общие для всех типов файлов — их открытие и закрытие.

Понятно, что перед тем как записать данные в файл или прочитать данные из файла, необходимо сначала открыть этот файл. Открытие файла выполняется оператором open:

Open имя_файла For режим_доступа [access тип_доступа] [lock] As [#]номер_файла [Len=длина]

где:

· имя_файла — полное имя файла;

· режим_доступа — режим доступа к файлу. Может принимать следующие значения: Append, Binary, Input, Output или Random;

· access — тип доступа к файлу. Определяет характер действий с файлом — чтение или запись данных. Может принимать значения: Read (Чтение), Write (Запись) или Read/Write (Чтение/Запись);

· lock — тип разрешения доступа к файлу другим процессам. Определяет возможность одновременной работы с файлом нескольких приложений или нескольких пользователей. Может принимать значения: Shared (Общий), Lock Read (Блокировка чтения), Lock Write (Блокировка записи) или Lock Read Write (Блокировка чтения и записи);

· номер_файла — целочисленное выражение, задающее идентификатор файла (дескриптор). Может иметь значение от 1 до 511 включительно;

· длина — число, определяющее размер буфера данных для записи/чтения в файлах прямого доступа. Для файлов произвольного доступа это число задает длину одной записи файла. Может иметь значение до 32, 767 (байтов).

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

Если указанный в операторе Open файл не найден по заданному пути или не существует, он будет создан этим оператором для режимов доступа Append, Binary, Output или Random. Для режима доступа Input новый файл не создается.

Важной особенностью режимов доступа является возможность многократного открытия файла для режимов Binary, Input и Random, то есть файл можно открыть несколько раз с разными номерами. Но для режимов доступа Output и Append, используемых для записи данных, это недопустимо.

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

Если номер открываемого файла специально не контролируется и не задается программой, его можно узнать с помощью функции FreeFile, возвращающей последний свободный номер открываемого файла.

 

Закрытие файлов

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

Close [номер_файла1, номер_файла2, …]

где номер_файла1, номер_файла2, … — список закрываемых файлов, представленных номерами файлов. При этом номер файла аналогичен номеру файла в функции Open.

Если список файлов не указан, оператор Close закрывает все открытые файлы.


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-08-31; Просмотров: 656; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.108 с.)
Главная | Случайная страница | Обратная связь