Спонсор: Microsoft
Опубликован: 04.07.2006 | Доступ: свободный | Студентов: 5441 / 620 | Оценка: 4.11 / 3.96 | Длительность: 11:08:00
Лекция 3:

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

< Лекция 2 || Лекция 3: 12345 || Лекция 4 >
Аннотация: Рассматривается работа с объектами файловой системы. Особый интерес представляет классический вопрос записи данных в файл, чтение данных из файла, поддерживаемый практической работой 19.

Элементы управления DriveListBox, DirListBox и FileListBox

Для работы с деревом файлов используйте элементы управления DriveListBox, DirListBox и FileListBox панели элементов управления (рис. 3.1).

DriveListBox, DirListBox и FileListBox

Рис. 3.1. DriveListBox, DirListBox и FileListBox

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

  • DriveListBox (рис. 3.1 вверху слева). Имена дисковых устройств (свойство Name) в соответствии с соглашением по коду начинаются с drv; важным свойством является Drive, оно доступно только во время выполнения проекта и определяет выбранное пользователем дисковое устройство. Из имеющихся событий представляет интерес Change, происходящее при выборе пользователем нового дискового устройства,
  • DirListBox (рис. 3.1 в середине слева). При выборе нового дискового устройства в поле элемента управления DirListBox выводится список соответствующих каталогов. Имена каталогов в соответствии с соглашением по коду начинаются с dir. Свойство Path, доступное во время выполнения, задает/возвращает путь к каталогу, выбранному пользователем из списка. Списки обновляются в процедуре события Change,
  • FileListBox (рис. 3.1 внизу слева). В списках файлов перечисляются файлы текущего каталога, откуда их можно выбрать. Имеется около 50 свойств. Свойство Path доступно только во время выполнения, его можно задать и возвратить. Свойства Hidden, Normal, ReadOnly, System, Archive дают возможность вывести в список только требуемые файлы. Имеется около 20 событий. Часто в процедуре CommandК_Click () выполняются действия, связанные со значениями Path и FileName списка файлов.

Чтобы обеспечить совместное функционирование элементов управления DriveListBox, DirListBox и FileListBox после размещения их на форме, нужно создать синхронизирующие их работу процедуры:

Private Sub Drive1_Change()
Dir1.Path = Drive1.Drive
End Sub

Private Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub

Для вывода содержимого каталога после его маркировки и нажатия клавиши Ввод нужно ввести код:
Private Sub Dir1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then Dir1.Path = Dir1.List(Dir1.ListIndex) 
End Sub

Здесь свойство ListIndex характеризует маркированную пользователем строку, см. ниже.

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

  • ChDrive имя дискового устройства - перейти на другое дисковое устройство,
  • ChDir путь - перейти в другой каталог,
  • MkDir путь - создать каталог,
  • RmDir путь - удалить каталог,
  • FileCopy источник, цель - копировать файл.
  • SetAttr - установить атрибуты файла/каталога; допускается комбинация атрибутов.

Информация об атрибутах дана в табл. 3.1

Таблица 3.1. Атрибуты файлов
Значение атрибута Имя константы Пояснение
0 vbNormal Свободный доступ
1 vbReadOnly Только для чтения
2 vbHidden Скрытый
4 vbSystem Системный
8 vbVolume Дисковое устройство
16 vbDirectory Каталог
32 vbArchive Архив

Практическая работа 17. Элементы управления DriveListBox, DirListBox и FileListBox

Для приобретения навыков работы с файловой системой выполнить следующее:

  1. Создать на форме элементы управления DriveListBox, DirListBox и FileListBox, рис. 3.1, синхронизировать работу объектов, см. соответствующие процедуры, приведенные выше,
  2. создать на форме командные кнопки:
    • Path для процедуры вывода пути и меню в поля меток, см. код и рис. 3.1,
    • Copy NET14.ICO для процедуры копирования файла (здесь - файла NET14.ICO) с заданием имени файла в процедуре и выводом данных в поле метки, см. код и рис. 3.1,
    • Copy File1 для процедуры копирования файла (здесь - файла File1) с заданием файла путем маркировки его имени в списке файлов FileListBox и выводом данных в поле метки, см. код и рис. 3.1,
    • Make Directory для создания каталогов, см. код и рис. 3.1,
  3. ввести код данный ниже:
    ' синхронизация работы элементов управления и 
    ' обеспечение вывода содержимого каталогов при 
    ' нажатии клавиши Enter
    Private Sub Drive1_Change()
    Dir1.Path = Drive1.Drive
    End Sub
    
    Private Sub Dir1_Change()
    File1.Path = Dir1.Path
    End Sub
    
    Private Sub Dir1_KeyPress(KeyAscii As Integer)
    If KeyAscii = 13 Then Dir1.Path = Dir1.List(Dir1.ListIndex)
    End Sub
    
    Private Sub Command1_Click() ' вывод пути и имени файла
    Label1 = Drive1: Label2 = Dir1: Label3 = File1
    End Sub
    
    ' процедура многократного копирования файла 
    ' последовательным нажатием командной кнопки
    Private Sub Command3_Click() 
    Static i As Integer
    FileCopy "A:\Net14.ICO", "A:\FileN"
    ' вывод имени копируемого файла и числа копирований
    Label4 = File1 & " Copy " & i +1
    i = i + 1
    End Sub
    
    ' процедура копирования файла путём маркировки файла в 
    ' списке FileListBox и последующего старта 
    ' соответствующей процедуры
    Private Sub Command4_Click()
    Static i As Integer
    Print File1: FileCopy File1, "FileN": Label5 = File1 & " Copy " & i + 1
    i = i + 1
    End Sub
    
    ' создание каталогов
    Private Sub Command2_Click()
    MkDir а1: MkDir а2
    End Sub
  4. стартовать проект и затем:
    • в списке DriveListBox выбрать, например, дисковое устройство А:. Маркировкой имени каталога и последовательным нажатием клавиши Enter вывести на экран содержимое. Маркировать некоторый файл (здесь - NET14.ICO), сделать щелчок на кнопке Path,
    • сделать щелчок на кнопке Copy NET14.ICO,
    • сделать щелчок на кнопке Copy File1,
    • сделать щелчок на кнопке Make Directory.
< Лекция 2 || Лекция 3: 12345 || Лекция 4 >
антонина квасова
антонина квасова
Владимир Муратов
Владимир Муратов

По курсу Visual Basic где же взять материалы для практических работ? 

Светлана Ведяева
Светлана Ведяева
Россия, Саратов
Оксана Пагина
Оксана Пагина
Россия, Москва