Страница: 1 |
Страница: 1 |
Вопрос: Проверка файла по маске
Добавлено: 15.11.08 20:57
Автор вопроса: Боцман | Web-сайт:
Нужна функция для проверки файла по маске.
Накатал примерчик, работает, но хотелось бы чтобы было более универсально.
Т.е, вот здесь маска из пяти пунктов, а если 3, то нужно коректировать функцию.
Как считать? если передать как в comdialoge что-то типа
Call MaskFile(v, ImyFile, sFilter )
Может у кого уже готовая функция есть? Заранее благадарюжник.
Примерчик, на форме расположите listBox
List1.AddItem ("PictureMain.bmp")
List1.AddItem ("wav6.mpg")
List1.AddItem ("wav5.wav")
List1.AddItem ("fart.mp2")
List1.AddItem ("wav09.mp3")
List1.AddItem ("wav.mpeg")
List1.AddItem ("textMain.txt")
List1.Selected(2) = True
End Sub
Private Sub List1_Click()
Dim v As Boolean, ImyFile As String
ImyFile = List1.Text
Call MaskFile(v, ImyFile, "*.mpg", "*.wav", "*.mp2", "*.mp3", "*.mpeg")
If v Then Print ImyFile
End Sub
Public Function MaskFile(v As Boolean, ByVal ImyFile As String, ByVal m1 As String, ByVal m2 As String, ByVal m3 As String, ByVal m4 As String, ByVal m5 As
String)
Dim z As Byte
For z = 1 To 5
Select Case z
Case 1
v = ImyFile Like m1
Case 2
v = ImyFile Like m2
Case 3
v = ImyFile Like m3
Case 4
v = ImyFile Like m4
Case 5
v = ImyFile Like m5
End Select
If v Then Exit Function
Next z
End Function
Ответы
Всего ответов: 3
Номер ответа: 1
Автор ответа:
Боцман
ICQ: 295725312
Вопросов: 53
Ответов: 830
Web-сайт:
Профиль | | #1
Добавлено: 15.11.08 21:50
Вопрос решен, видимо сегодня мозг в отгуле.
Номер ответа: 2
Автор ответа:
Ra$cal
ICQ: 8068014
Вопросов: 18
Ответов: 817
Web-сайт:
Профиль | | #2
Добавлено: 15.11.08 23:46
отжог
Номер ответа: 3
Автор ответа:
Svsit
Вопросов: 5
Ответов: 3
Профиль | | #3
Добавлено: 19.11.08 22:10
Лови функцию. Все работает. Количество фильтров не ограничено. Они разделяются символом "|" (только для разделения фильтров, при одном фильтре его не надо писать).
Private Sub Form_Load()
List1.AddItem ("PictureMain.bmp"
List1.AddItem ("wav6.mpg"
List1.AddItem ("wav5.wav"
List1.AddItem ("fart.mp2"
List1.AddItem ("wav09.mp3"
List1.AddItem ("wav.mpeg"
List1.AddItem ("textMain.txt"
List1.Selected(2) = True
End Sub
Private Sub List1_Click()
 im v As Boolean, ImyFile As String
ImyFile = List1.Text
v = MaskFile(ImyFile, "*.mpg|*.wav|*.mp2|*.mp3|*.mpeg"
If v Then Print ImyFile
End Sub
Private Function MaskFile(ByVal ImyFile As String, ByVal m As String) As Boolean
 im s As String
 im Filter As String
 im Total As Boolean
Total = False
 o
If InStrRev(m, "|" > 0 Then
Filter = Right$(m, Len(m) - InStrRev(m, "|")
m = Left$(m, InStrRev(m, "|" - 1)
Else
Filter = m
m = ""
End If
Total = ImyFile Like Filter
If Total Then Exit Do
Loop Until m = ""
MaskFile = Total
End Function