Newsgroup: it.comp.lang.visual-basic
Titolo: R: OPPPS: Perchè non funziona?

   Name = Dir(Path)   ' Recupero la prima voce.
         Flag=1
 >   Do While MyName <> ""   ' Eseguo il ciclo
          Flag=Flag+1
 >       If Left(Name, 2) <> "SP" Then  'Importo solo i file con prefisso SP
 >       If (GetAttr(Path & Name) And vbNormal) = vbNormal Then
 >         Debug.Print Path & Name            'Cosě funziona
 >       End If
 >     End If
         Name = Dir(Path)   ' Recupero la prima voce.
         For I = 1 to Flag
             Name = Dir   ' Leggo il file successivo
         Next I
 >   Loop
 Non credo sia la migliore ma funziona.
Chiunque puň indicarmi un altro metodo, questo č sempre ben accetto.
Grazie a tutti per l'attenzione.

'Ma cosa devi fare ? prelevare tutti i file di una certa directory che
inizino per SP ?
St = Dir(Path & "SP*.*",vbNormal)
Do until St = ""
    Debug.print St
    St = Dir
Loop
Questo dovrebbe funzionare
    Ciao


Ripeto per completezza il post
Ho questa struttura
C:\GESTAN--
                      |--SPED--
                                      |--1989
                                      |--1990
                                      |--1991
                                      |--1992
                                      |--1993
                                      |--1994
                                      |--1995
                                      |--1996
                                      |--1997
                                      |--1998
                                      |--1999
                                      |--2000
all'interno di ognuna di queste ultime directory (1989, ...) ci sono una
quarantina di files.
Devo leggere solo quelli con prefisso SP per poter costruire un unico file
per ciascuna directory, ma con una struttura record nuova.
Per fare l'operazione tutta in automatico ho scritto lo stralcio di codice
che riporto....
Path =  ... ' Imposto il percorso.
Flag=1                                                        <-----
Name = Dir(Path)   ' Recupero la prima voce.
Do While MyName <> ""   ' Eseguo il ciclo
    Flag=Flag+1                                            <-----
    If Left(Name, 2) <> "SP" Then  'Importo solo i file con prefisso SP
        If (GetAttr(Path & Name) And vbNormal) = vbNormal Then
            NumFile = FreeFile
            LenFile = Len(T_Sped)
            F_Sped = Path + Name
            Open F_Sped For Random As NumFile Len = LenFile
                NumRecord = LOF(NumFile) / LenFile
                NumFile2 = FreeFile
                LenFile2 = Len(T_Spedizioni)
                Open CurDir & "\sped\" & MyDirName & F_Spedizioni For Random
As NumFile2
                    Len = LenFile2
                    NumRecord2 = LOF(NumFile2) / LenFile2
                    For I = 1 To NumRecord
                        Get NumFile, I, T_Sped
                             ..... Assegno i valori
                        Put NumFile2, NumRecord2 + I, T_Spedizioni
                    Next I
                Close NumFile2
            Close NumFile
        End If
    End If
    'Qui il programma si incasinava e alla lettura di Name=Dir ottenevo un
bel Name=""
    Name = Dir(Path)   ' Recupero la prima voce.       <-----
    For I = 1 to Flag
<-----
        Name = Dir   ' Leggo il file successivo
    Next I
<-----
Loop
Così funziona, ma sicuramente è poco ortodosso.
Cmq la problematica si riporrà in seguito per altri file di tipo diverso, ma
la logica di funzionamento è la stessa.
L'operazione si deve ripetere più volte per leggere e modificare alla fine
circa 1000 files.
E deve essere fatta su macchine diverse. Volevo solo cercare di facilitarmi
la cosa con una procedura in automatico.
Se hai un'idea........
GRAZIE
Le righe <----- sono quelle aggiunte

 Le righe <----- sono quelle aggiunte
Prova a vedere se questo codice puo` esserti di aiuto:
Option Explicit
Sub Main()
  Dim strRoot     As String
  Dim strFldrs()  As String
  Dim strFldr     As String
  Dim blnTest     As Boolean
  Dim strFile     As String
  Dim strFiles()  As String
  Dim vntFiles    As Variant
  Dim i, j        As Long
  strRoot = "C:\GESTAN\SPED\"
  blnTest = False
  strFldr = Dir(strRoot, vbDirectory)
  Do While Len(strFldr)
    If strFldr <> "." And strFldr <> ".." Then
      If (GetAttr(strRoot & "\" & strFldr) And vbDirectory) _
        = vbDirectory Then
        If blnTest = False Then
          ReDim strFldrs(0)
          blnTest = True
        Else
          ReDim Preserve strFldrs( _
            LBound(strFldrs) To UBound(strFldrs) + 1)
        End If
        strFldrs(UBound(strFldrs)) = strFldr
      End If
    End If
    strFldr = Dir
  Loop
  ReDim vntFiles(LBound(strFldrs) To UBound(strFldrs))
  For i = LBound(vntFiles) To UBound(vntFiles)
    blnTest = False
    strFile = Dir(strRoot & strFldrs(i) & "\SP*.*")
    Do While Len(strFile)
      If blnTest = False Then
        ReDim strFiles(0)
        blnTest = True
      Else
        ReDim Preserve strFiles( _
          LBound(strFiles) To UBound(strFiles) + 1)
      End If
      strFiles(UBound(strFiles)) = strFile
      strFile = Dir
    Loop
    If blnTest Then vntFiles(i) = strFiles
    Erase strFiles
  Next
  For i = LBound(strFldrs) To UBound(strFldrs)
    Debug.Print _
        strRoot _
      & strFldrs(i)
    If Not IsEmpty(vntFiles(i)) Then
      For j = LBound(vntFiles(i)) To UBound(vntFiles(i))
        Debug.Print _
          , strRoot _
          & strFldrs(i) & "\" _
          & vntFiles(i)(j)
      Next
    End If
  Next
End Sub
--
Ciao.
Maurizio
--------
?SPQR(C)
 X
--------

.....
Che dire?
Non ho parole.
1) Non sapevo si potesse ridimensionare un vettore mantenendo i valori
acquisiti
2) Non sapevo si potesse passare un intero vettore ad una matrice
Certo che ce n'ho di strada da fare....
...tu quanto c'hai messo?
Ti prego non massacrarmi
**************************************************************************
----------------------------------------------------------------------------
---
     Everybody needs a place to rest
     Everybody wants to have a home
     Don't make no difference what nobody says
     Ain't nobody like to bge alone
----------------------------------------------------------------------------
---

 Ti prego non massacrarmi
Massacrarti? Io? E perche' poi? Io ti voglio bene. Se non ci fossi tu io non
esisterei e se tu ed io non esistessimo non esisterebbe il ng. :-)
Piuttosto vedi di sbrigarti a sostituirmi perche' sono stanco. :-))
(Per quelli duri di comprendonio: ho usato "tu" ed "io" per intendere
genericamente "colui che pone un quesito al ng" e "colui che risponde". ;-)



E me, che può solo intanto imparare.....
.....e ringraziare.
Ciao
Max
********************************************
   "Nel mondo ci sono solo due tipi di persone:
    quelle che adorano Bruce Springsteen
    e quelle che non l'hanno mai visto in concerto."
                                 Larry Katz, Boston Herald
********************************************
PS. Stavolta l'ho cambiato
Capito ora l'inglese?

 wrote in message ...

 Capito ora l'inglese?
Si`. Ma non capisco il senso dell'insieme. Ma non importa, sai. E`
sicuramente un mio limite.
