Поиск файлов в подпапках и добавление в список - VB

Узнай цену своей работы

Формулировка задачи:

Добрый день! Просто не смог придумать более подходящего названия...) Значит есть у меня маханькая программка которая формирует плей лист для трансляции клипов... т.е. просто берет все файлы из папки, "перемешивает" их и записывает в файл... Если интересно вот ее код:
Листинг программы
  1. Public Function CreateList()
  2. PathToDir = TxtFolder.Text
  3. Dir1.Path = PathToDir
  4. File1.Path = Dir1.Path
  5. Dim x As Integer
  6. For x = 0 To File1.ListCount - 1
  7. List1.List(x) = File1.List(x)
  8. Next x
  9. Dim I As Long, j As Long, Z As String
  10. Dim I1 As Long, I2 As Long
  11. For I = 0 To List1.ListCount - 1
  12. Randomize Timer
  13. j = I + Fix(Rnd * (List1.ListCount - I))
  14. Z = List1.List(I)
  15. List1.List(I) = List1.List(j)
  16. List1.List(j) = Z
  17. Next I
  18. pathfile = TxtLoad.Text
  19. Open pathfile For Output As #1
  20. Print #1, "new c1 broadcast enabled"
  21. Close #1
  22. Open pathfile For Append As #1
  23. For I = 0 To List1.ListCount - 1
  24. Print #1, "setup c1 input ";
  25. Write #1, TxtFolder.Text + "\" + List1.List(I)
  26. Next I
  27. Print #1, TxtStream.Text
  28. Print #1, "control c1 play"
  29. Close #1
  30. End Function
А теперь нужно сделать так, что бы не просто брались все файлы из папки, а: есть папки "1", "2", "3" и "4" с клипами.... Нужно сформировать плей лист на смену (18 часов трансляции), но что бы за смену файлы из папки "4" проиграли за смену 4 раза, из папки "3" проиграли 3 раза, и т.д. Вот сломал себе уже всю голову и даже похожего пока ничего не придумал....((( У кого есть идеи, подскажите пожалуйста хоть примерный алгоритм...

Решение задачи: «Поиск файлов в подпапках и добавление в список»

textual
Листинг программы
  1. Dim fso, fld, fsf
  2.  
  3. Private Sub Command1_Click()
  4.     On Error GoTo ErrorHandler
  5.     get_folder App.Path
  6.     Exit Sub
  7. ErrorHandler:
  8.     MsgBox Error, vbExclamation + vbOKOnly
  9. End Sub
  10.  
  11. Sub get_folder(in_fold As String)
  12.     'поиск подпапок и вызов обработки файлов текущей папки
  13.    Set fld = fso.GetFolder(in_fold)
  14.     Set fsf = fld.SubFolders
  15.    
  16.     get_file
  17.    
  18.     If fsf.Count <> 0 Then
  19.         'по подпапкам
  20.        For Each f1 In fsf
  21.             get_folder (f1)
  22.         Next
  23.     End If
  24. End Sub
  25.  
  26. Sub get_file()
  27.     'поиск файлов по маске в текущей
  28.    Set ff = fld.Files
  29.     If ff.Count <> 0 Then
  30.         For Each f2 In ff
  31.             t = InStr(1, f2, "") 'ввести маску если надо
  32.            If t > 0 Then
  33.                 k = 0 ' все остальные папки включая 1
  34.                If IsNumeric(fld.Name) Then
  35.                     If CInt(fld.Name) > 0 Then k = CInt(fld.Name) - 1
  36.                 End If
  37.             End If
  38.             For i = 0 To k
  39.                 List1.AddItem f2.Name
  40.             Next
  41.         Next
  42.     End If
  43. End Sub
  44.  
  45. Private Sub Form_Load()
  46.     Set fso = CreateObject("Scripting.FileSystemObject")
  47. End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут