Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media
Nel Formula 1 Technology and Media Centre di Biggin Hill, la velocità delle monoposto si trasforma in dati, immagini e decisioni in tempo reale grazie all’infrastruttura Lenovo che gestisce centinaia di terabyte ogni weekend di gara e collega 820 milioni di spettatori nel mondo
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica
Il nuovo gimbal mobile DJI evolve il concetto di tracciamento automatico con tre modalità diverse, un modulo multifunzionale con illuminazione integrata e controlli gestuali avanzati. Nel gimbal è anche presente un'asta telescopica da 215 mm con treppiede integrato, per un prodotto completo per content creator di ogni livello
Recensione Pura 80 Pro: HUAWEI torna a stupire con foto spettacolari e ricarica superveloce
Recensione Pura 80 Pro: HUAWEI torna a stupire con foto spettacolari e ricarica superveloce
Abbiamo provato il nuovo HUAWEI Pura 80 Pro. Parliamo di uno smartphone che è un vero capolavoro di fotografia mobile, grazie ad un comparto completo in tutto e per tutto, In questa colorazione ci è piaciuto molto, ma i limiti hardware e software, seppur in netto miglioramento, ci sono ancora. Ma HUAWEI ha fatto davvero passi da gigante per questa nuova serie Pura 80. Buona anche l'autonomia e soprattutto la ricarica rapida sia cablata che wireless, velocissima.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-07-2004, 10:50   #1
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
[vba] come fate se volete ricercare un file su tutto il disco ?

ci vorrebbe una bella ricorsione usando abilmente ed opportunamente il comando.....


Dir() di VB


Siccome penso che qualcuno lo ha già implementato vi ringrazio da subito se.....
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2004, 12:48   #2
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
per esempio:

Codice:
Sub aMain()
 NomePath = "c:\"
 NomeFile = "pippo.xls"
 Call TrovaFile(NomePath, NomeFile, ElencoFile)
 MsgBox ElencoFile
End Sub



Sub TrovaFile(NomePath, NomeFile, ElencoFile)
 
 If Dir(NomePath & NomeFile) <> "" Then
  ElencoFile = ElencoFile & NomePath & NomeFile & Chr$(10)
 End If
 
 NomeDir = Dir(NomePath, vbDirectory)
 Do While NomeDir <> ""
  If (GetAttr(NomePath & NomeDir) And vbDirectory) = vbDirectory Then
    If NomeDir <> "." And NomeDir <> ".." Then ElencoDir = ElencoDir & NomeDir & ","
  End If
  NomeDir = Dir
 Loop
 
 ipos1 = 1
 Do
  ipos2 = InStr(ipos1, ElencoDir, ","): If ipos2 = 0 Then Exit Do
  Call TrovaFile(NomePath & Mid$(ElencoDir, ipos1, ipos2 - ipos1) & "\", NomeFile, ElencoFile)
  ipos1 = ipos2 + 1
 Loop
 

End Sub
a2000 è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2004, 13:10   #3
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
pensavo utilizzassi una chiamata ricorsiva
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2004, 13:49   #4
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
infatti è ricorsiva.
a2000 è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2004, 14:07   #5
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
pardon, hai ragione

intendevo senza creare una sorta di stringa separata da ,

beh, poi ognuno ha i suoi metodi
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2004, 14:58   #6
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
Quote:
Originariamente inviato da misterx
...
intendevo senza creare una sorta di stringa separata da ,
...
è dovuto per il corretto richiamo reiterato di Dir

comunque è a piacere.
a2000 è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2004, 14:59   #7
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
Quote:
Originariamente inviato da a2000
è dovuto per il corretto richiamo reiterato di Dir

comunque è a piacere.


ma te lo sei inventato tu ?

io stavo lavorando su questo esempio che è compreso nell'help in linea di excel

Codice:
Sub Prova()

Range("a1:a500").Clear


' Visualizza i nomi in c:\ che rappresentano directory.
MyPath = "c:\windows\" ' Imposta il percorso.

MyName = Dir(MyPath, vbDirectory) ' Recupera la prima voce.


Do While MyName <> "" ' Avvia il ciclo.
    ' Ignora la directory corrente e quella di livello superiore.
    If MyName <> "." And MyName <> ".." Then
        ' Usa il confronto bit per bit per verificare se MyName è una directory.
        If (GetAttr(MyPath & MyName) And vbDirectory) <> vbDirectory Then
            Cells(i + 1, 1) = MyName: i = i + 1 ' Visualizza la voce solo
        End If                                  ' se rappresenta una directory.
    End If
    MyName = Dir  ' Legge la voce successiva.
Loop

End Sub

Ultima modifica di misterx : 20-07-2004 alle 15:11.
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2004, 20:58   #8
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
Quote:
Originariamente inviato da misterx
ma te lo sei inventato tu ?
ca va sans dire.
a2000 è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2004, 08:47   #9
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
così se vi dovesse servire non ammattite per niente

A che mi serve ?
a trova tutti i file di un particolare tipo, esempio: BitMap "*.bmp" in tutto il disco partendo dalla cartella da voi fornita e ve li mostra incolonnati nella colonna "A1:An" di Excel



Codice:
Option Explicit
Dim gFiles() As String
Dim g As Integer




Sub SearchFolder(FolderName As String, FilePattern As String)
Dim FileNames() As String
Dim FolderNames() As String
Dim FileName As String
Dim i As Integer
Dim j As Integer
FileName = Dir$(FolderName & "\" & FilePattern)
Do Until FileName = ""
    ReDim Preserve gFiles(g)
    gFiles(g) = FolderName & "\" & FileName
    g = g + 1
    FileName = Dir$()
Loop

FileName = Dir$(FolderName & "\*.*", vbDirectory)
Do Until FileName = ""
    If (GetAttr(FolderName & "\" & FileName) And vbDirectory) = vbDirectory Then
        If Left$(FileName, 1) <> "." Then
            ReDim Preserve FolderNames(i)
            FolderNames(i) = FileName
            i = i + 1
        End If
    End If
    FileName = Dir$()
Loop
For j = 0 To i - 1
    SearchFolder FolderName & "\" & FolderNames(j), FilePattern
Next j
End Sub





Sub TrovaUnTipoDiFile()
    
    Columns("A:A").Clear
    
    Dim i As Integer
    
    SearchFolder "C:", "*.bmp" 'qui mettere cartella di partenza e tipo di file
    
    For i = 0 To g - 1
        Cells(i + 1, 1) = gFiles(i)
    Next i
    
End Sub

Ultima modifica di misterx : 21-07-2004 alle 08:50.
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2004, 09:59   #10
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
copiato ?
a2000 è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2004, 10:10   #11
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
Quote:
Originariamente inviato da a2000
copiato ?


se esiste già che ti reinventi, l'acqua calda ?


quello sopra poi, è solo la punta dell'iceberg



ma tu gli ambienti di sviluppo te li scrivi oppure usi quelli messi a disposizione da Microsoft ?


se ci pensi è la stessa cosa
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 21-07-2004, 10:36   #12
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
ok ok (cioè no), nun te incazzà !

comunque l'ambiente di sviluppo perfetto è il foglio di carta (bianca).
a2000 è offline   Rispondi citando il messaggio o parte di esso
Old 27-07-2004, 10:41   #13
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
ma è possibile che per avere un valore di ritorno da una funzione devo scrivere quello che vedete sotto in bold ?

Codice:
Sub test()

    stringa = "vada via i ciap"
    ncar = NumeroDiA(stringa) 

    MsgBox( ncar )

End Sub

Function NumeroDiA(stringaAs String)
    
    For i = 1 To Len(stringa)
        If Mid$(stringa, i, 1) = "a" Then sp = sp + 1
    Next i

    NumeroDiA= sp

End Function
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 27-07-2004, 10:48   #14
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
Codice:
Function NumeroDiA(stringaAs String)
    
    For i = 1 To Len(stringa)
        NumeroDiA = NumeroDiA - (Mid$(stringa, i, 1) = "a")
    Next i

End Function
a2000 è offline   Rispondi citando il messaggio o parte di esso
Old 27-07-2004, 10:49   #15
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
Quote:
Originariamente inviato da a2000
Codice:
Function NumeroDiA(stringaAs String)
    
    For i = 1 To Len(stringa)
        NumeroDiA = NumeroDiA - (Mid$(stringa, i, 1) = "a")
    Next i

End Function


mi interessa conoscere come VBA ritorna un valore tra funzioni
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 27-07-2004, 12:02   #16
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
come in algebra.
senza C-ca@ate tipo return nomevar.

nelle ultime versioni puoi utilizzare nei calcoli direttamente il nome della funzione come una variabile.
nelle precedenti no ed era necessaria l'assegnazione finale.
a2000 è offline   Rispondi citando il messaggio o parte di esso
Old 27-07-2004, 12:03   #17
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
ma questi misterx sono dettagli di piccolo conto.
a2000 è offline   Rispondi citando il messaggio o parte di esso
Old 27-07-2004, 13:04   #18
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3736
Quote:
Originariamente inviato da a2000
come in algebra.
senza C-ca@ate tipo return nomevar.

io ero rimasto che nel BASIC il return servisse solo per ritornare da una sub-routine, il malefico GOSUB

Quote:
Originariamente inviato da a2000
nelle ultime versioni puoi utilizzare nei calcoli direttamente il nome della funzione come una variabile.
nelle precedenti no ed era necessaria l'assegnazione finale.
intendi come nell'esempio che ho postato io ?
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 27-07-2004, 13:09   #19
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
Quote:
Originariamente inviato da misterx

- io ero rimasto che nel BASIC il return servisse solo per ritornare da una sub-routine, il malefico GOSUB

- intendi come nell'esempio che ho postato io ?
- esatto.
ma in pascal e C (e anche fortran last edition) c'è la possibilità di restituire il valore di una variabile con una istruzione tipo return nomevar

- sì.
a2000 è offline   Rispondi citando il messaggio o parte di esso
Old 27-07-2004, 13:47   #20
a2000
Bannato
 
L'Avatar di a2000
 
Iscritto dal: Jan 2001
Messaggi: 1976
e hai mai restituito un variant array, magari su un range di celle ?

Codice:
Function f_fff(v) As Variant
 Dim vf(1 To 1, 1 To 4) as Variant
 ......
 
 vf(1, 1) = nIG - SnIG
 vf(1, 2) = SyI - 1
 vf(1, 3) = SxI - 1
 vf(1, 4) = TI
 f_fff = vf
 
End Function
e sul foglio:

={f_fff(A17)} ......... ={f_fff(A17)} ......... ={f_fff(A17)} ......... ={f_fff(A17)}

immessi sotto forma di matrice con Ctrl+Shift+Enter

Ultima modifica di a2000 : 27-07-2004 alle 13:50.
a2000 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media Il cuore digitale di F1 a Biggin Hill: l'infrast...
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica DJI Osmo Mobile 8: lo stabilizzatore per smartph...
Recensione Pura 80 Pro: HUAWEI torna a stupire con foto spettacolari e ricarica superveloce Recensione Pura 80 Pro: HUAWEI torna a stupire c...
Opera Neon: il browser AI agentico di nuova generazione Opera Neon: il browser AI agentico di nuova gene...
Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi Wind Tre 'accende' il 5G Standalone in Italia: s...
Microsoft e tecnologia immorale: i dipen...
Come stanno andando Fastweb e Vodafone d...
Huawei presenta i nuovi eKit: soluzioni ...
Rockstar spiega i licenziamenti degli sv...
Il "concert phone" definitivo ...
Nintendo punta sul cinema: dopo Mario, a...
Insta360 X4 Air in prova: registra a 360...
PlayStation Portal: arriva lo Streaming ...
iPad Air 13'' (M2) in offerta: sconto di...
Schiaffo al copyright: utilizzare materi...
realme GT 8 Pro porta le fotocamere inte...
JBL Clip 5 a soli 39€ su Amazon: lo spea...
Apple pronta a pagare 1 miliardo l'anno ...
Apple non dimentica gli iPhone più...
Nintendo si prepara a dare il benservito...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 13:20.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v