Basit Vbasic Sorunum
-
For a = 0 To Dir1.ListCount - 1
List1.AddItem Dir1.List(a)
If InStr(1, UCase(GetLast(Dir1.List(a))), UCase(Text1.Text)) > 0 Then
Set lv = ListView1.ListItems.Add(, , GetLast(Dir1.List(a)), 1, 1)
lv.ListSubItems.Add , , Dir1.Path
End If
DoEvents
Next aFor i = 0 To File1.ListCount - 1
If InStr(1, UCase(File1.List(i)), UCase(Text1.Text)) > 0 Then
Set lv = ListView1.ListItems.Add(, , File1.List(i), 2, 2)
lv.ListSubItems.Add , , Dir1.Path
End If
DoEvents
Next iBu döngüyü kullanarak dizin alıyorum fakat kodları kopyala yapıştır yapıyorum onun için her satırı analiz etmem lazım "If InStr(1, UCase(GetLast(Dir1.List(a))), UCase(Text1.Text)) > 0 Then" bu satırde ve diğer döngüdede bunun file lısı var ne demek istiyor anlamadım ki vbasic de anlamamış olcak ki hata veriyor bu satırlarda.
-
Tamam yaptım.
"
Private Sub Command1_Click()
On Error GoTo bere
Dim num As Long
Me.Tag = "Start"'== RESET PAST RESULTS =======
ListView1.ListItems.Clear
List1.Clear
'============================='== ADD CURRENT DIRECTORY TO DIRECOTRY TO SEARCH =====
List1.AddItem Dir1.Path
List1.ListIndex = 0
'==============================================
ere:
If Me.Tag = "Stop" Then GoTo bereMe.Caption = "Search " & ListView1.ListItems.Count & " Results"
'== GO TO THE NEXT PATH TO SEARCH
Dir1.Path = List1.Text
'==========================='== ADD SUB FOLDERS TO LIST OF FOLDERS TO SEARCH ===
'== EXTRACT FOLDER NAME FROM FOLDER PATH & SEARCH IN THE FOLDER NAME FOR SEARCH STRING
'IF SEARCH STRING FOUND ADDED TO LISTVIEW
For a = 0 To Dir1.ListCount - 1
List1.AddItem Dir1.List(a)
If InStr(1, UCase(GetLast(Dir1.List(a))), UCase("")) > 0 Then
Set lv = ListView1.ListItems.Add(, , GetLast(Dir1.List(a)), 1, 1)
lv.ListSubItems.Add , , Dir1.Path
End If
DoEvents
Next a
'============================================================'== SERACH ALL FILES FOR SERACH STRING IF FOUND ADD TO LISTVIEW
For i = 0 To File1.ListCount - 1
If InStr(1, UCase(File1.List(i)), UCase("")) > 0 Then
Set lv = ListView1.ListItems.Add(, , File1.List(i), 2, 2)
lv.ListSubItems.Add , , Dir1.Path
End If
DoEvents
Next i
'====================================='== TO SET NEXT PATH TO CHANGE TO
List1.ListIndex = List1.ListIndex + 1
GoTo ere
'================================
'==SEARCH IS NOW COMPLETE
bere:
MsgBox "COMPLETE"
'==============================
End SubPrivate Sub Dir1_Change()
File1.Path = Dir1.Path
Dir1.Refresh
File1.Refresh
End SubFunction GetLast(dir As String) As String
txt = Split(dir, "\")
GetLast = txt(UBound(txt))
End FunctionPrivate Sub Drive1_Change()
On Error Resume Next
Dir1.Path = Drive1.Drive
Dir1.Refresh
File1.Refresh
End SubPrivate Sub Form_Load()
File1.Pattern = "*.*"
End SubPrivate Sub Form_Unload(Cancel As Integer)
End
End Sub
"Kodun tamamı böle bu işlem ile dizinleme yapılıyor.
Şimdi arama bittikten sonra bunları kaydetmek mesele.
-
Kısacası FOr Döngüsi ile bunları texte kaydettireceğim fakat listview den nasıl kolonlarından veri çekileceğini bilmiyorum.