Замечание
В функции SetAttr используются все константы, описанные в табл. 3, кроме константы vbDirectory.
Для того чтобы задать несколько атрибутов, можно просто просуммировать указанные константы. Например, для установки атрибутов файла Hidden и Read-only необходимо использовать функцию setAttr следующего вида:
SetAttr "MyFile", vbHidden + vbReadOnly
При этом для файла MyFile будут установлены атрибуты Hidden и Read-only.
В языке Visual Basic у разработчика имеются широкие возможности работы с файловой системой, которые представляют изученный ранее диалоги Common Dialog, набор файловых операторов и функций, а также файловые элементы управления.
Существует три файловых элемента управления:
DriveListBox (Список дисков)
DirListBox (Список каталогов)
FileListBox (Список файлов)
D riveListBox (Список дисков) . Данный элемент управления представляет собой ниспадающий список, в котором по умолчанию отображается диск, являющийся текущим. Если в процессе работы приложения пользователю нужно сменить обозначение диска, то сделать это можно двумя способами. Во-первых, при помощи мыши раскрыть список, щёлкнуть на стрелке в правой части объекта, с последующим выбором требуемого элемента. Во-вторых, задать нужное название, используя для этого стрелки управления курсором, когда объект имеет фокус.
Имеется возможность задать программным образом диск, который будет использоваться по умолчанию, т.е. который будет являться текущим при запуске приложения. Для этого следует воспользоваться свойством 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.
- Теоретическая часть.
- Традиционный подход при работе с файлами
- Открытие файлов
- Input #номер_файла, имя_переменной1, имя_переменной2, …
- Переход на заданную позицию в файле
- Запись данных
- Работа с файлами произвольного доступа
- Чтение данных из файла произвольного доступа
- Seek #номер_файла, позиция
- Запись в файл произвольного доступа
- Изменение данных в файле произвольного доступа
- Работа с двоичными файлами
- Пример двоичного файла
- Замечание