Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Проверка файла по маске Добавлено: 15.11.08 20:57  

Автор вопроса:  Боцман | Web-сайт: Rus-Skipper.narod.ru | ICQ: 295725312 
Нужна функция для проверки файла по маске.
Накатал примерчик, работает, но хотелось бы чтобы было более универсально.
Т.е, вот здесь маска из пяти пунктов, а если 3, то нужно коректировать функцию.
Как считать? если передать как в comdialoge что-то типа
sFilter =  "*.jpg;*.bmp;*.gif"
 Call MaskFile(v, ImyFile, sFilter )

Может у кого уже готовая функция есть? Заранее благадарюжник.
Примерчик, на форме расположите listBox
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()
 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-сайт: Rus-Skipper.narod.ru
 Профиль | | #1
Добавлено: 15.11.08 21:50
Вопрос решен, видимо сегодня мозг в отгуле.

Ответить

Номер ответа: 2
Автор ответа:
 Ra$cal



ICQ: 8068014 

Вопросов: 18
Ответов: 817
 Web-сайт: www.rascalspb.narod.ru
 Профиль | | #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()
  ;Dim 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
  ;Dim s As String
  ;Dim Filter As String
  ;Dim Total As Boolean
  Total = False
  ;Do
    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

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам