Сайт Черникова Игоря Владимировича
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Форум » Форум » Функция Dir (VB6)
Функция Dir
arhimed-67Дата: Суббота, 28.12.2013, 21:47 | Сообщение # 1
Рядовой
Группа: Администраторы
Сообщений: 3
Репутация: 0
Статус: Offline
Функция DirВозвращает имя файла, каталога или папки в переменную типа StringСинтаксис:

переменная = Dir(путь, атрибуты)

переменная - любая переменная типа String или Variant
путь - (необязательный элемент, если не указаны атрибуты) указывает путь до файла или папки в кавычках,
например:
X = Dir("C:\Temp\") - путь до папки Temp на диске C:\
X = Dir("C:\Temp") - путь до файла Temp на диске C:\.
Путь может содержаться в переменной типа String или Variant, например:
Dim Y as String, X as String
Y = "C:\Temp\"
Х = Dir(Y)
В этом случае переменная Х получает первый файл, содержащийся в в папке Temp на диске С:\
Чтобы получить следующий файл, нужно вызвать эту функцию ещё раз без указания аргументов (пути и атрибутов):
Х = Dir,
но если файлов в этой папке больше нет, то Х будет равен пустой строке - "", а если вызвать эту функцию (Х = Dir) ещё раз , то произойдёт ошибка времени выполнения 5 и выйдет сообщение "Неверный вызов процедуры или параметр".
Этим можно воспользоваться и написать так
Dim X As String, Y As String, MeFiles As String                            'Объявляем переменные
Y = "C:\Temp\"                                                                               'присваиваем переменной Y путь к файлам
MeFiles = "Файлы, содержащиеся в " + Y + Chr(10) + Chr(10) 'Записываем в переменную, путь и два перехода на следующую строку
X = Dir(Y)                                                                                     ' Находим первый файл и записываем в переменную Х
Do While Not X = ""                                                                      'Начинаем и выполняем цикл пока Х не равен пустой строке.
MeFiles = MeFiles + X + Chr(10)                                                  'дописываем в переменную найденный файл и переход на следующую строку
X = Dir                                                                                           'Ищем следующий файл (вызвав функцию без аргументов)
Loop                                                                                              'Конец цикла, возврат к началу цикла
MsgBox (MeFiles)                                                                         'Выводим переменную на экран, можно без скобок.

атрибуты (необязательный). Константа или числовое выражение, описывающее атрибуты файла. Если этот аргумент опущен, возвращаются все файлы (для возврата папок необходимо указать атрибут vbDirectory или 16), имена которых удовлетворяют аргументу путь. Атрибуты можно предварительно записать в переменную или константу, а потом её вставить вместо атрибута.

Ниже приведены допустимые значения аргумента атрибута:
Константа (встроенная в VB6, объявлять её не нужно)    Значение        Описание
vbNormal                                                                        0                Обычный файл.
vbHidden                                                                        2                Скрытый файл.
vbSystem                                                                       4                Системный файл.
bVolume                                                                        8                 Метка тома; если указана, все остальные атрибуты игнорируются.
vbDirectory                                                                    16                Каталог или папка.

Пример для поиска папок в каталоге

Dim X As String, Y As String, MeFiles As String                            'Объявляем переменные
Y = "C:\Temp\"                                                                         'присваиваем переменной Y путь к файлам
MeFiles = "Папки, содержащиеся в " + Y + Chr(10) + Chr(10)     'Записываем в переменную, путь и два перехода на следующую строку
X = Dir(Y, 16)                                                                           ' Находим первую папку
If X = "" Then                                                                           'Проверяем существует ли такая директория
MeFiles = "Дирректории " + Y + " не существует"                       'Выводим надпись на экран
GoTo 10                                                     'Если нет, переходим к метке 10
End If                                                            'Конец условия If (если)
Do While Not X = ""                                         'Начинаем и выполняем цикл пока Х не равен пустой строке.
MeFiles = MeFiles + X + Chr(10)                 'дописываем в переменную найденную папку и переход на следующую строку
X = Dir                                                         'Ищем следующую папку (вызвав функцию без аргументов)
Loop                                                                'Конец цикла
10 MsgBox (MeFiles)
Примечание. Данные константы определяются в языке Visual Basic для приложений. Это означает, что их имена можно использовать в любом месте кода вместо фактических значений.

Дополнительные сведения

Функция Dir поддерживает использование подстановочных знаков для нескольких символов (*) и для одиночного символа (?) для указания нескольких файлов.
При первом вызове функции Dir необходимо указать путь, в противном случае возникает ошибка. Если указаны атрибуты файла, наличие аргумента путь является обязательным.
Изменить значение аргумента путь можно в любой момент, не дожидаясь, пока закончатся файлы, имена которых удовлетворяют текущему пути. Рекурсивный вызов функции Dir запрещен.

Пример для поиска файлов в каталоге
Dim X As String, Y As String, MeFiles As String, File As String     'Объявляем переменные
Y = "C:\Temp\"                                                                              'присваиваем переменной Y путь к файлам
File = "*.mp3"                                                                                'Присваиваем переменой File маску файлов, которые нужно найти
MeFiles = "Файлы " + File + " содержащиеся в " + Y + Chr(10) + Chr(10) 'Записываем в переменную, путь и два перехода на следующую строку
X = Dir(Y + File)                                                                           ' Находим первый файл .mp3
Do While Not X = ""                                                                      'Начинаем и выполняем цикл пока Х не будет равен пустой строке.
MeFiles = MeFiles + X + Chr(10)                                                  'дописываем в переменную найденный файл и переход на следующую строку
X = Dir                                                                                          'Ищем следующий файл (вызвав функцию без аргументов)
Loop                                                                                             'Конец цикла
MsgBox (MeFiles)                                                                         'Выводим сообщение на экран
 
roterbДата: Вторник, 15.11.2016, 15:55 | Сообщение # 2
Рядовой
Группа: Пользователи
Сообщений: 5
Репутация: 0
Статус: Offline
sad
 
indiahelpДата: Четверг, 31.05.2018, 17:50 | Сообщение # 3
Рядовой
Группа: Пользователи
Сообщений: 4
Репутация: 0
Статус: Offline
smile
 
Форум » Форум » Форум » Функция Dir (VB6)
  • Страница 1 из 1
  • 1
Поиск:

Copyright MyCorp © 2024
Сделать бесплатный сайт с uCoz