DIR Insane -(

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
LexBondAgent007
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 132
Зарегистрирован: 10.05.2005 (Вт) 16:11
Откуда: Россия - Москва - ЦАО

DIR Insane -(

Сообщение LexBondAgent007 » 08.09.2005 (Чт) 18:35

Привет всем! У меня ужасная головная боль по поводу...
Вобщем хотел воспользоваться объектом DIR (просмотр директорий) и столкнулся с проблемой...
Нужно чтобы ДИР отображал только ПАПКИ в заданному ему PATH.
И в тоже время их и не раскрывал... Но суть заключается в слудующим: просто мне нужно создать ЛИСТ выбора... А условия этого выбора - это название папок в заданном пути... Понимаю что сразу не понять поэтому привожу пример:
В директории app.path \ EXAMPLE находиться 3 папки: APPLE, PEACH и BERRY. В вижуал бэйсике нужно, чтобы пользователь выбрал одну из этих папок в ЛИСТБОКСЕ!!! Допустим подсвечивает APPLE ну и далее данные постовляются из этой папки... И ГЛАВНОЕ ЧТОБЫ ПОЛЬЗОВАТЕЛЮ НЕ ОТОБРАЖАЛОСЬ СОДЕРЖИМОЕ ЭТИХ ПАПОК и ПУТЬ К ЭТОЙ ПАПКЕ... Хэлп в общем... :roll:
Это не читайте! Это спам! :D

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 08.09.2005 (Чт) 18:44

чем тебе filelistbox не угодил?
ХЎ

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 08.09.2005 (Чт) 18:52

d3drm, если я правильно понял ему нужно отобразить не файлы, а папки.
В таком случае - самый простой вариант: ListBox в который изначально закидываются все названия подпапок 1-го уровня заданого пути. (например через Dir$)
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

LexBondAgent007
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 132
Зарегистрирован: 10.05.2005 (Вт) 16:11
Откуда: Россия - Москва - ЦАО

Сообщение LexBondAgent007 » 08.09.2005 (Чт) 18:58

Урф...! А применчик то можно, плиз, как это сделать?
Это не читайте! Это спам! :D

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 08.09.2005 (Чт) 19:30

Например вот так:
Код: Выделить всё
Private Sub Form_Load()
Dim strFileList As String, _
    strFolder As String
strFolder = App.Path
If Right$(strFolder, 1) <> "\" Then strFolder = strFolder & "\"
strFolder = strFolder & "EXAMPLE\*."

strFileList = Dir(strFolder, vbDirectory)
Do Until strFileList = vbNullString
    If Left(strFileList, 1) <> "." Then List1.AddItem strFileList
    strFileList = Dir
Loop
End Sub
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

LexBondAgent007
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 132
Зарегистрирован: 10.05.2005 (Вт) 16:11
Откуда: Россия - Москва - ЦАО

Сообщение LexBondAgent007 » 08.09.2005 (Чт) 20:39

o.O Не понял как ты цикл использовал, если честно...... НО РАБОТАЕТ! :lol: SHURUP, пасиб!
Это не читайте! Это спам! :D

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 08.09.2005 (Чт) 22:32

LexBondAgent007 писал(а):o.O Не понял как ты цикл использовал, если честно...... НО РАБОТАЕТ! .....

C циклом всё просто. По крайней мере я понимаю так:
Когда вызываешь DIR с параметром path - то функция возвращает первый объект (файл/папку) который удовлетворяет маске и атрибуту.
А когда потом вызываешь DIR без параметров - он возвращает следующий объект, если он есть. На этом и построен цикл (пока что-то возвращается - проверять дальше).
Вот только не могу понять, почему при атрибуте vbDirectory - все-равно в список попадают файлы?

PS: Могут возникнуть непредвиденные обстоятельства, если в папке EXAMPLE будут папки содержащие точку или файлы без разширения.
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 08.09.2005 (Чт) 22:46

2 SHURUP

http://bbs.vbstreets.ru/viewtopic.php?t=17698&start=3

Какая интересная схожесть кода :)
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 08.09.2005 (Чт) 23:13

2BV , :oops:. Заметили. :oops:
Хотел как свой собственный толкнуть, а теперь прийдеться авторством делиться (точнее совсем его отдать...).
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 09.09.2005 (Пт) 0:55

Мне ли собственный код не узнать :)

Код: Выделить всё
Option Explicit

Private Sub Form_Load()
    Dim strFolderList As String
    Dim strFolder As String
    strFolder = Environ("WinDir")
    If Right$(strFolder, 1) <> "\" Then strFolder = strFolder & "\"
    strFolderList = Dir(strFolder, vbDirectory)
    Do Until strFolderList = vbNullString
        If strFolderList = "." Or strFolderList = ".." Then GoTo NextStep
        If GetAttr(strFolder & strFolderList) = vbDirectory Then
            Debug.Print strFolderList
            Debug.Print strFolder & strFolderList & vbCrLf
        End If
NextStep:
        strFolderList = Dir
    Loop
End Sub
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: SemrushBot, Yandex-бот и гости: 68

    TopList  
cron