Acquista i nostri libri consigliati su Amazon.it
+ Rispondi al messaggio
Visualizzazione dei risultati da 1 a 5 su 5

Visita in profondità directory

  1. #1
    ricky87 non è in linea Novello
    Post
    16
    Like Inviati  
    0
    Like Ricevuti  
    0
    Ciao a tutti, avrei bisognio di creare una maschera che contenga un albero il quale a sua volta, deve funzionare come una sorta di esplora risorse per una directory principale decisa anticipatamente (nel codice,è sempre la stessa).
    Ogni subdir (della principale) può contenere altre sottodir e/o dei file che non sono altro che documenti rtf.
    Lo scopo finale è quello di visualizzare i file di testo in world (tramite bottone).
    Non esiste magari un qualcosa di già pronto che data una dir principale visualizzi l'albero ed i file delle sottocartelle?

    grazie, saluti
    riccardo
    ℹ️ Leggi di più su ricky87 ...

  2. #2
    L'avatar di TheTruster
    TheTruster non è in linea Moderatore Globale Ultimo blog: Mouse Wheel in Visual Basic 6 - ActiveX
    Post
    7,245
    Blogs
    3
    Like Inviati  
    19
    Like Ricevuti  
    13
    Prima di postare è obbligatorio cercare sul forum eventuali altri argomenti che possano collimare con la propria richiesta.

    http://forum.masterdrive.it/visual-b...dir-vb6-31288/
    http://forum.masterdrive.it/visual-b...artelle-11007/
    http://forum.masterdrive.it/visual-b...artelle-12505/
    http://forum.masterdrive.it/visual-b...xtfiles-12109/

    ...e decine di altri thread simili.

    TheTruster
    ℹ️ Leggi di più su TheTruster ...

  3. #3
    L'avatar di @Alex
    @Alex non è in linea Moderatore Globale
    Post
    16,830
    Like Inviati  
    0
    Like Ricevuti  
    25
    Quote Originariamente inviato da ricky87 Visualizza il messaggio
    Ciao a tutti, avrei bisognio di creare una maschera che contenga un albero il quale a sua volta, deve funzionare come una sorta di esplora risorse per una directory principale decisa anticipatamente (nel codice,è sempre la stessa).
    Ogni subdir (della principale) può contenere altre sottodir e/o dei file che non sono altro che documenti rtf.
    Lo scopo finale è quello di visualizzare i file di testo in world (tramite bottone).
    Non esiste magari un qualcosa di già pronto che data una dir principale visualizzi l'albero ed i file delle sottocartelle?

    grazie, saluti
    riccardo
    Quello che chiedi è relativamente semplice da fare...
    Diciamo che TT ti ha dato anche delle indicazioni utili, ma ci sono dei ma...

    Innanzitutto per poter usare il controllo detto "ad albero" o TreeView serve la licenza, che, nel caso di Office non è prevista.
    Questo ti impone pertanto di avere la versione Sviluppo, oppure il vecchio VB6 installato.

    L'alternativa è molto complessa, e sottolineo MOLTO, ma la trovi quì come esempio:
    MS ACCESS Code Sample - versione usabile/accessibile
    ℹ️ Leggi di più su @Alex ...

  4. #4
    ricky87 non è in linea Novello
    Post
    16
    Like Inviati  
    0
    Like Ricevuti  
    0
    avete ragione, prima di postare naturalmente ho cercato nel forum ma avevo trovato argomenti non consoni rispetto a quello che cercavo.
    Adesso controllo i vostri link e vi faccio sapere, grazie mille per ora, siete sempre super veloci!!
    ℹ️ Leggi di più su ricky87 ...

  5. #5
    ricky87 non è in linea Novello
    Post
    16
    Like Inviati  
    0
    Like Ricevuti  
    0
    Allora, grazie ai vostri link sono riuscito a buttare giù una funzione grezza, che poi volevo affinare, ma ho riscontrato 2 strani problemi:

    Sol 1 (grezza):

    Sub costruisciAlbero(path As String, padre As String)
    On Error Resume Next
     
        Set fld = fso.GetFolder(path)
     
        For Each subfld In fld.SubFolders
            If (padre = "" Or padre = "OHSAS 18001") Then
                Set tmpnode = Me.AlberoOHSAS.Nodes.Add(, , "ID_" & subfld.Name, subfld.Name, 1)
            Else
                padre = Right(subfld.ParentFolder, Len(subfld.ParentFolder) - InStrRev(subfld.ParentFolder, "\", , vbTextCompare))
                Set tmpnode = Me.AlberoOHSAS.Nodes.Add("ID_" & padre, tvwChild, "ID_" & subfld.Name, subfld.Name, 1)
            End If
            tmpnode.Expanded = False
        costruisciAlbero subfld.path, fld.Name
        Next subfld
     
     
        For Each fl In fld.Files
            If (fl.Name <> "MODULI.txt") Then
                Set tmpnode = Me.AlberoOHSAS.Nodes.Add("ID_" & fld.Name, tvwChild, "ID_" & fl.Name, fl.Name, 2)
            End If
        Next
    Exit Sub
    End Sub
    
    per come è costruito il ciclo, si visitano 2 volte le ultime sottodir che vengono visitate.

    Ho pensato dunque di affinare la soluzione (anche se con il resume next fa alla grande il suo lavoro) inserendo un unico ciclo nella ricorsione e di fare un if per vedere se si tratta di una cartella

    sol 2:
    Sub creaAlbero(path As String, parent As String)
    On errorr GoTo errore
    dr = Dir(path, vbDirectory)
    Do
       If ((dr <> ".") And (dr <> "..") And (dr <> "")) Then
          If GetAttr(path & dr) = vbDirectory Then
             Set tmpnode = Me.AlberoOHSAS.Nodes.Add("ID_" & CStr(parent), tvwChild, "ID_" & dr, dr, 1)
             creaAlbero path & dr & "\", dr
          Else
            If (dr <> "MODULI.txt") Then
             Set tmpnode = Me.AlberoOHSAS.Nodes.Add("ID_" & CStr(parent), tvwChild, "ID_" & dr, dr, 2)
            End If
          End If
     
       End If
       dr = Dir
    Loop While (dr <> "")
    Exit Sub
    errore:
    MsgBox Error.Description
    End Sub
    
    il problema assurdo è ke quando eseguo

    dr = Dir(path, vbDirectory)

    anche parent assume lo stesso valore e perdo il contenuto originale.
    Suggerimenti?
    ℹ️ Leggi di più su ricky87 ...

+ Rispondi al messaggio

Potrebbero interessarti anche ...

  1. A iterazione della profondita
    Da signfra nel forum Altri linguaggi e strumenti
    Risposte: 0
    Ultimo Post: 21-09-2015, 13:12
  2. Visita albero in-order
    Da maxpix nel forum Altri linguaggi e strumenti
    Risposte: 9
    Ultimo Post: 15-09-2013, 19:29
  3. Risposte: 6
    Ultimo Post: 23-06-2010, 12:21
  4. Creazione biglietto da visita
    Da lori2903 nel forum Altri linguaggi e strumenti
    Risposte: 1
    Ultimo Post: 01-10-2009, 12:28
  5. nuovo scambio visita automatico
    Da raffaele nel forum Pausa caffè
    Risposte: 1
    Ultimo Post: 03-12-2002, 12:13