Newsgroup: it.comp.lang.visual-basic
Titolo: Criterio di ricerca di un file in una directory in VB6

Salve a tutti
come posso fare in VB6 per ricercare e copiare in altra directory tutti i 
file che per esempio hanno al terzo e quinto posto un carattere da me 
stabilito?Il numero dei caratteri da ricercare da me stabiliti possono 
variare.
una volta fatto ciň per scorrere i file nella dir
nomeFile = Dir$(TempPath & "\*.*")
Do While Len(nomeFile )   .
   nomeFile = Dir$
Loop
come devo impostare i criteri di ricerca? 

 come devo impostare i criteri di ricerca?
' ammesso che il carattere cercato sia "A"
nomeFile = Dir$(TempPath & "\??A?A*.*")
Ciao

 nomeFile = Dir$(TempPath & "\??A?A*.*")
Grazie per la risp
ma non capisco perchè non mi va
premettendo che i file sono tutti della stessa lunghezza e hanno questo 
formato 0012_p23_30b140506_1012_0001X.jpg.mh0 e premettendo che voglio fare 
la ricerca solo sui bit che vanno dal 20 al 27 ho scritto in questo modo:
Dim P As String
Dim I As String
Dim E As String
Dim O As String
Dim Eq As String
Dim R As String
Dim Ri As String
Dim nomeImg As String
Dim nomeImgDir As String
If Variazioni(1) <> "" Then P = Variazioni(1) Else: P = "?"
If Variazioni(2) <> "" Then I = Variazioni(2) Else: I = "?"
If Variazioni(3) <> "" Then E = Variazioni(3) Else: E = "?"
If Variazioni(4) <> "" Then O = Variazioni(4) Else: O = "?"
 If Variazioni(5) <> "" Then Eq = Variazioni(5) Else: Eq = "?"
If Variazioni(6) <> "" Then R = Variazioni(6) Else: R = "?"
If Variazioni(7) <> "" Then Ri = Variazioni(7) Else: Ri = "?"
 nomeImg = "???????????????????" & P & I & E & O & "_" & Eq & R & Ri & 
"*.*.*"
 nomeImgDir = Dir$(TempPath & "\*.*")
Do While Len(nomeImgDir)
       If nomeImgDir = nomeImg Then
                  MsgBox "file trovato"
       End If
Loop 

asterix ha scritto:

Stai ciclando su tutti i caratteri per confrontarli uno ad uno? ma poi 
l'operatore "=" confronta comunque le stringhe intere (e quindi il risultato è 
sempre False)
innanzitutto cerca sull'help l'operatore Like e quindi togli il ciclo Do-loop:
nomeImgDir = Dir$(TempPath & "\*.*")
If nomeImgDir Like nomeImg Then
     MsgBox "file trovato"
End If
(ma non l'ho provata)
Ciao
Daniele

Naturalmente non conosco il tuo grado di esperienza e quindi scusa se magari ti 
dico cose scontate: è meglio insegnare a pescare che regalare tre pesci.
Il debug del codice in questi casi aiuta molto. invece di provare alla cieca 
decine di volte, imposta un punto di interruzione (quelle righe rosse) sulla 
riga dell'IF e avvia il programma. Quando l'esecuzione si blocca lì (ti presenta 
la riga gialla) porta il puntatore sulle varie variabili e vedrai il valore 
assunto da ognuna. Questo (spesso) ti farà capire subito dove sbagli.
Scusa se ho scritto cose che ti erano già ovvie, non potevo saperlo.
Ciao
Daniele

 Daniele
Grazie mille per l'aiuto
cmq ho scritto in questo modo lasciando il Do-loop
Do While Len(nomeImgDir)
      If nomeImgDir Like nomeImg Then
            MsgBox "file trovato"
      End If
      nomeImgDir = Dir$
Loop
in quanto nella dir posso avere più file che sto cercando e togliendolo 
ovviamnete non mi scorre tutta la dir 

 ha scritto nel messaggio 
news:4479a0bc$0$29103$5fc...@news.tiscali.it...

Figurati
uso molto il debug, ma il fatto è che non sapevo come ricercare solo parti 
di file
avevo provato anche con StrComp ma niente
Cmq grazie ancora 

>        If nomeImgDir = nomeImg Then
Continuo a non capire perchè tiri fuori tutti i file e poi controlli se il 
nome corrisponde  uno per uno anzichè tirare già fuori la lista filtrata con 
Dir.
Ciao 


se non metto il Do while trova solo il primo secondo il criterio di ricerca 
e basta
in questo modo invece no, mi scorre tutti gli elementi 

 in questo modo invece no, mi scorre tutti gli elementi
Forse non hai ancora notato che Dir() accetta i criteri di ricerca, senza 
fare nessun IF all'interno del loop.
Ciao 

 in questo modo invece no, mi scorre tutti gli elementi 
Sub TrovaFiles(TuoPath As String, TuoCarattere1 As String, 
TuoCarattere2 As String)
Dim UnFile As String
UnFile = Dir(TuoPath & "\??" & TuoCarattere1 & "?" & TuoCarattere2 & 
"*.*")
Do
If UnFile <> "" Then
Debug.Print UnFile
Else
Exit Do
End If
UnFile = Dir
Loop
End Sub
Chiamata es:
TrovaFiles "c:\windows", "t", "e"
-- 
What Goes Around Comes Around 
News 2000 [v 2.06] - 
http://www.akapulce.net/socket2000