Поиск файлов по маске - VB
Формулировка задачи:
Здравствуйте! Изучаю vba. Дали задание сделать поиск файлов по маске.
Посмотрите пожалуйста, может что нибудь надо доработать.
ФОрма
Класс
Спасибо
Листинг программы
- Private serch As New serch
- Private Sub CommandButton1_Click()
- On Error GoTo Errors1
- Dim i As Integer
- serch.raspol = textbox1.Text
- serch.mask = textbox2.Text
- For i = 1 To serch.k
- listbox1.AddItem (serch.item(i))
- Next i
- GoTo Ends:
- Errors1:
- Resume Next
- Ends:
- End Sub
Листинг программы
- Private mraspol As String
- Private nmask As String
- Private fnp(1000000) As String
- Private lnarraynum As Integer
- Private lngsheet As Long
- Public mstr As String
- Public Property Let raspol(ByVal inewraspol As String)
- mraspol = inewraspol
- End Property
- Public Property Let mask(ByVal inewMask As String)
- nmask = inewMask
- Call search(mraspol, nmask, lngsheet)
- End Property
- Public Property Get item(lnarraynum As Integer) As String
- item = fnp(lnarraynum)
- End Property
- Public Property Get k() As Long
- k = lnarraynum
- End Property
- Public Sub search(mraspol As String, nmask As String, lngsheet As Long)
- Dim mstr, strfldrlist() As String
- Dim lngarraymax, x As Long
- lngarraymax = 0
- strFileName = Dir(mraspol & "*.*", vbDirectory + vbNormal)
- While strFileName <> ""
- If strFileName <> "." And strFileName <> ".." Then
- If (GetAttr(mraspol & strFileName) And vbDirectory) = vbDirectory Then
- lngarraymax = lngarraymax + 1
- ReDim Preserve strfldrlist(lngarraymax)
- strfldrlist(lngarraymax) = mraspol & strFileName & "\"
- Else
- If strFileName Like nmask Then
- mstr = mraspol & strFileName
- lnarraynum = lnarraynum + 1
- fnp(lnarraynum) = mstr
- End If
- End If
- End If
- strFileName = Dir()
- Wend
- If lngarraymax <> 0 Then
- For x = 1 To lngarraymax
- Call search(strfldrlist(x), nmask, lngsheet)
- Next
- End If
- End Sub
Решение задачи: «Поиск файлов по маске»
textual
Листинг программы
- Option Explicit
- Private Sub Form_Load()
- Dim Z As String, col As Collection
- Z = Dir("D:\Temp\AUD*.3gp")
- Set col = New Collection
- Do While Len(Z)
- col.Add Z
- Z = Dir()
- Loop
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д