Помогите с поиском файлов.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Bov
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 18.08.2005 (Чт) 0:49

Помогите с поиском файлов.

Сообщение Bov » 18.08.2005 (Чт) 0:51

Привет. Не могу с поиском файлов разобраться! Скачал из инета какойто модуль, и никак не ищет... :( У меня Visual Basic 6, помогите, если кто сможет...

С уважением Олег.

Bov
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 18.08.2005 (Чт) 0:49

Сообщение Bov » 18.08.2005 (Чт) 0:55

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

mask$="exe" ' Маска файла
Dim files$ as long

<!--- ВАШ МОДУЛЕ ---!>

... и теперь стало:

files$(1)="c:\windows\explore.exe"
files$(2)="c:\windows\notepad.exe"

... С уважением Олег.

Юстас
Бывалый
Бывалый
 
Сообщения: 200
Зарегистрирован: 24.10.2003 (Пт) 5:05

Сообщение Юстас » 19.08.2005 (Пт) 4:20

Ищи примеры с FindFirstFile/FindNextFile или с Dir.
Примеров - как грязи :)
Например в api-guide

Александр Дмитриев
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 296
Зарегистрирован: 05.01.2005 (Ср) 3:39
Откуда: Санкт-Петербург    Куда: /dev/null

Сообщение Александр Дмитриев » 19.08.2005 (Пт) 19:53

Я прогу реальную делаю поисковую (по файлам) - искать будет очень быстро. Я выложил недоделанную тормозную её версию на своём сайте (dmitrosoft.narod.ru), когда доделаю, могу выслать исходники.

Bov
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 18.08.2005 (Чт) 0:49

Сообщение Bov » 22.08.2005 (Пн) 23:54

Вечер добрый, так и ненашёл примеров, может вы выложите рабочий модуль??

Александр Дмитриев
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 296
Зарегистрирован: 05.01.2005 (Ср) 3:39
Откуда: Санкт-Петербург    Куда: /dev/null

Сообщение Александр Дмитриев » 23.08.2005 (Вт) 0:15

На
Вложения
SmartSearch.rar
(3.99 Кб) Скачиваний: 35

Bov
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 18.08.2005 (Чт) 0:49

Сообщение Bov » 23.08.2005 (Вт) 0:48

Большое спасибо вам....

RUSYA
Обычный пользователь
Обычный пользователь
 
Сообщения: 84
Зарегистрирован: 22.07.2005 (Пт) 20:17
Откуда: Харьков

Сообщение RUSYA » 23.08.2005 (Вт) 1:39

Option Explicit
Private Const MAX_PATH = 260
Private Const INVALID_HANDLE_VALUE = -1
Private Const FILE_ATTRIBUTE_DIRECTORY As Long = &H10

Private Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type

Private Type WIN32_FIND_DATA
dwFileAttributes As Long
ftCreationTime As FILETIME
ftLastAccessTime As FILETIME
ftLastWriteTime As FILETIME
nFileSizeHigh As Long
nFileSizeLow As Long
dwReserved0 As Long
dwReserved1 As Long
cFileName As String * MAX_PATH
cAlternate As String * 14
End Type

Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long

Private Sub InterateObject(Source As String)
Dim objName As String
Dim hSearch As Long
Dim WFD As WIN32_FIND_DATA
Dim Cont As Integer

Cont = True
hSearch = FindFirstFile(Source & "*", WFD)
If hSearch <> INVALID_HANDLE_VALUE Then
Do While Cont
objName = Left(WFD.cFileName, InStr(WFD.cFileName, Chr(0)) - 1)
If Not (objName = "." Or objName = "..") Then
If (WFD.dwFileAttributes And FILE_ATTRIBUTE_DIRECTORY) = 0 Then
List1.AddItem Source & objName
Else
InterateObject Source & objName & "\"
End If
End If
Cont = FindNextFile(hSearch, WFD)
Loop
Cont = FindClose(hSearch)
End If
End Sub

Private Sub Command1_Click()
Dim dblTimer As Double
dblTimer = Timer
List1.Clear
InterateObject "C:\"
Debug.Print Round(Timer - dblTimer, 2)
End Sub

это самый быстрый вариант, добавить поиск по маске - домашнее задание :)
А как оно на самом деле - Х.З. !

Bov
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 18.08.2005 (Чт) 0:49

Сообщение Bov » 23.08.2005 (Вт) 18:45

2 RUSYA Спасибо, разбираюсь с вашим модулем...
Ещё вопрос: что такое Private Declare Function.... помню из Q-Basic, там было либо Private, либо Declare Function.... а это как то сразу одновременно..... :roll:

Спасибо...

Bov
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 18.08.2005 (Чт) 0:49

Сообщение Bov » 23.08.2005 (Вт) 19:36

Так и неразобрался с "Домашним заданием"... помогите мне поставить маску, например mp3 или MP3 (если конечно регистр имеет значение) :idea: :shock:


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 117

    TopList