Basit Vbasic Sorunum

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yusufyusufyusuf
    yusufyusufyusuf's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    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 a

    For 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 i

     

    Bu 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.

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yusufyusufyusuf
    yusufyusufyusuf's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek

    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 bere

    Me.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 Sub

    Private Sub Dir1_Change()
    File1.Path = Dir1.Path
    Dir1.Refresh
    File1.Refresh
    End Sub

     

    Function GetLast(dir As String) As String
    txt = Split(dir, "\")
    GetLast = txt(UBound(txt))
    End Function

    Private Sub Drive1_Change()
    On Error Resume Next
    Dir1.Path = Drive1.Drive
    Dir1.Refresh
    File1.Refresh
    End Sub

    Private Sub Form_Load()
    File1.Pattern = "*.*"
    End Sub

    Private 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.

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    yusufyusufyusuf
    yusufyusufyusuf's avatar
    Kayıt Tarihi: 14/Haziran/2006
    Erkek
    Kısacası FOr Döngüsi ile bunları texte kaydettireceğim fakat listview den nasıl kolonlarından veri çekileceğini bilmiyorum.
Toplam Hit: 1957 Toplam Mesaj: 3