Newsgroup: it.comp.lang.visual-basic
Titolo: Dir, Path & C. problema banale.. per i più esperti

Ciao a tutti, Vi chiedo aiuto per questo mio problema... (ho girato e
letto molto senza però trovare una soluzione...)
Dunque ho una cartella dal nome 'ASSOCIAZIONE'
che contiene altre cartelle con nomi di Comuni differenti tipo: VEDANO
AL LAMBRO
LIMBIATE, VARESE etc..
Ogniuna di queste cartelle contiene a sua volta una serie di cartelle
denominate:
123433221_VARESE_Via Le mani dal naso 6
123433222_VARESE_Via di qua 3
123433223_VARESE_Via di la 4
etc.
ora.. io devo richiamare il contenuto di una di queste sottocartelle
però... utilizzando soltanto (per comodità) il numero di codice che
precede tutto il nome della cartella (es.: 123433222) che è univoco.
In pratica.. senza utilizzare tutto il nome.. es.: 123433222_VARESE_Via
di qua 3 dovrei utilizzare solo: 123433222
Come posso fare? Quali sono le stringhe di sorgente che devo scrivere?
Ringrazio anticipatamente...

 ha scritto nel messaggio
news:1153150103.9...@b28g2000cwb.googlegroups.com...


> prova, tentar non nuoce :D
Grazie mille... ci provo e ti faccio sapere!

 utilizza la funziona dir
macchè.. nulla da fare.. ma non è che tu usi una versione di vb post
mia? Io uso la 6.

 utilizza la funziona dir
macchč.. nulla da fare.. ma non č che tu usi una versione di vb post


 [...]
E dall'uomo degli errori basici... ..stavolta è arrivato un errore acido:
L'idea è giusta, però mi pare ci sia qualche carattere che non va, prova a 
usare la funzione messa così:
NomeIntero = Dir(percorsofile & "\" & "123433223" & "_*,vbdirectory)
inoltre stai attento che percorsofile non finisca con una "\" e, 
chiaramente, ti ricordo che su percorso devi comunque netterci anche il nome 
della città perchè la funzione Dir non cerca nelle sottoirectory.. ..lo dico 
perchè non ho ben capito se volevi fare la ricerca anche senza conoscere la 
città.
Ciao,
    Diego 


Forse questa era la risposta per il post:
    Re: Drivelistbox-dirlistbox-filelistbox
Ciao,
    Diego 

     Diego
Ciao Diego, si è cosi come dici.. io ho queste cartelle con nome lungo
e misto ma devo utilizzare le stesse richiamandole solo con i primi 9
caratteri e cioè con il numero di codice...

[...]
He he.. ..mi son dimenticato le virgolette anche io.. ..cosě imparo a 
riprendere gli altri per i propri errori..
Ciao Cerberus,
    Diego 

 ha scritto nel messaggio 
news:1153209881.8...@75g2000cwc.googlegroups.com...

Quindi tu vorresti beccare le directory facendo una ricerca dal livello 
superiore, dalla cartella ASSOCIAZIONE per intenderci..
Ci sono tre alternative secondo me:
    - fai una ricerca in due step individuando prima tutte le 
directory-città e poi cercando dentro ogniuna con il sistema di Cerberus
    - usi la mia funzione AllDir (la trovi sul mio sito 
www.mazzaro.net/diego
 o nel sito comune)
    - io però ti consiglio una terza alternativa. L'idea è quella di buttare 
le directory-città e mettere tutto nella directory ASSOCIAZIONE. Essrendo 
che hai il codice univoco all'inizio non dovrebbe essere un problema. Il 
nome della città puoi sempre aggiungerlo dopo il codice nel nome della 
directory. In questo modo sarebbe possibile usare il metodo suggerito da 
Cerberus direttamente visto che avresti tutto in una sola directory. Dal 
punto di vista del lavoro di ricerca si ridurrebbe moltissimo dato che basta 
usare quella riga di codice ormai famosa. Ovviamente ci saranno dei contro e 
lì valuta tu.
Poi una osservazione personale: perchè non usi un database?
Ciao,
    Diego 

 123433223_VARESE_Via di la 4
zac
Un mio amico architetto fa la stessa cosa....si è inventato un codice
parlante univoco per ogni cliente....chiama con quello una cartella e
dentro mette tutte le cartelle con i disegni le pratiche le parcelle
etc etc
poi ha un foglio di excel che si stampa per avere la corrispondenza fra
ragione sociale e codice parlante!
E' una logica perfettamente funzionante e "manuale".....che crea pochi
casini anche al crescere dei clienti.
Inutile dire che anche solo una mini-applicazione in access sarebbe
più versatile e pulita...ma probabilmente meno pratica:
le cartelle sono in un file server condiviso...lo stampato "indice" è
di lato ad ogni monitor....i progettisti frullano tra i vari
terminali...i geometri ugualmente....e nulla magicamente si incasina!
nel tuo caso specifico mi piace poco
123433221_VARESE_Via Le mani dal naso 6
sarebbe stato più logico
123433221
 e dentro VARESE_Via Le mani dal naso 6
ed avere un "indice" da qualche parte


Ecco, cosě č ancora meglio!
Ciao,
    Diego 

 >
Inizio intanto a ringraziarvi per le info... per quanto riguarda le
cartelle nominate in un modo che io ritengo 'indegno' purtroppo io non
ho possibilità di decisione. Chi le ha create non intende rinominarle
ed io mi trovo un po in.. 'brache di tela'.
In pratica io ho bisogno di potere 'pescare' le cartelle diciamo cosi..
senza sapere come si chiamano e poi.. verificare se all'interno del
nome di ogni cartella con una istruzione tipo inStr controllare se c'è
il numero di codice.
es.:
loop (o comando equivalente)
    mi posiziono sulla prima cartella
    inserisco in una var il nome della cartella
    con 'inStr(nome var)' verifico se le prime 9 lettere sono = al num
di codice
    se si: esco
    se no: passo alla seconda cartella... e ripeto il loop di controllo
end loop
Comunque.. provo a seguire i Vs consigli... e Vi faccio sapere...
Many tnk!

Diego grazie... nel tuo sito probabilmente troverò la soluzione al mio
problema...

problema...
Diciamo che se usi la mia AllDir basta che chiami
AllDir(PercorsoAssociazione, "123456-*", AllDir_NomiDirectory + 
AllDir_SottoDir, Risultato())
e ti ritrovi quello che cerchi, ti avviso però che potrebbe essere una cosa 
un po' lunga e per questo resto dell'idea che sarebbe meglio strutturare 
diversamente le tue directory.. ..però se non si può.. pazienza..
Se la soluzione così è troppo lenta il mio consiglio è questo:
all'interno della directory ASSOCIAZIONE cerchio tutte le drectory e fai un 
ciclo che le passa tutte riciamando per ognuna il comando
Dir(Path & "\" & codice & "_*", vbdirectory) e ricevendo una stringa vuota 
se non trova niente o il nome della directory se c'è qualcosa.
Ti ricordo però che non puoi fare il coclo esterno usando Dir e ottenendo di 
volta in volta le varie directory, perchè poi, dato che all'interno del 
ciclo chiami di nuovo Dir con parametri di ricerca diversi, perdi il filo 
della ricerca e il dir esterno deve ripartire da capo.. Saresti quindi 
costretto a leggerti prima tutto l'elenco delle directory-città per poi 
eseguire una sola volta il comando Dir(Path & "\" & Citta & "\"& codice & 
"_*", vbdirectory) per ciascuna directory.
Ciao e buon lavoro,
    Diego

     Diego
Davvero un bel casotto...
Mi riordino le idee e ci provo.
Grazie mille Diego..
speriamo...

Fatto!!!!
ecco come ho risolto:
'gestisco le immagini della cartella preselezionata
Adodc19.RecordSource = " SELECT * FROM opzioni WHERE id_directory = 1"
Adodc19.Refresh
Adodc20.RecordSource = " SELECT * FROM ang WHERE ang_coimm = " &
codiceimmobile
Adodc20.Refresh
Dim comunepath As String
comunepath = Adodc20.Recordset.Fields("ang_comune")
Dim cartellafotografie, prova, prova2, cartelladelleimmagini As String
prova = Adodc19.Recordset.Fields(1)
cartellafotografie = prova & "\" & comunepath & "\" & codiceimmobile
prova2 = Dir(cartellafotografie & "*", vbDirectory)
cartelladelleimmagini = prova & "\" & comunepath & "\" & prova2
Dir1.path = cartelladelleimmagini
File1.path = cartelladelleimmagini
funziona perfettamente!
Grazie a tutti!!!!


Prego!
Beh, complimenti per la scelta di ricrearti una strutturapiù gestibile su 
db.
Se invece il DB c'era già (o comunque a questo punto) quasi quasi ti direi: 
"perchè già che ci sei non aggiungi una colonna alla tabella e ci metti già 
il nome della directory dentro così poi non servono neanche più tutte 'ste 
ricerche?"
Comunque in effetti visto che la struttura delle directory non ti lasciano 
toccarla hai fatto una buona scelta secondo me!
Ciao,
    Diego 

     Diego
Diego, detto da un esperto come te mi pare proprio un complimento
esaltante.. grazie mille....
avrei un'altro piccolo problema... se me lo permetti te lo illustro...

 avrei un'altro piccolo problema... se me lo permetti te lo illustro...
Dunque... ho una MSHFlexGrid popolata da un controllo ADO composta da 5
righe e 8 colonne. Quando viene attivata, la griglia visualizza solo 2
colonne e cioè i campi DESCRIZIONE e COSTO.
Es.:
                       2002                             2003
                 2004
          DESCRIZ  |  COSTO  |  DESCRIZ  |  COSTO  |  DESCRIZ  |  COSTO
Quando clicko sulla barra di trascinamento orizzontale (quella
verticale non esiste) mi si sposta una colonna alla volta creando una
situazione scomoda ( da: DESCRIZIONE + COSTO a: COSTO | DESCRIZIONE che
non sono relativi) .
La domanda è questa:
Esiste un controllo od un qualche cosa che faccia spostare 2 colonne
alla volta ogni volta che si clicka sulla barra di scorrimento
orizzontale?

orizzontale?
Credo che potresti provare a far fare un altro spostamento gestendo l'evento 
scroll della MSHFlexGrid.
La MSFlexGrid ha tale evento e credo che ce l'abbia anche la MSHFlexGrid. Ho 
provato solo una volta a usare la MSHFlexGrid e poiho deciso che non ne 
avevo bisogno, adesso non ce l'ho installata per controllare ma ho fatto una 
prova con la MSFlexGrid e l'evento si genera anche quando si fa click sulla 
frecetta della barra, e non solo quando si trascina.
Ma dimmi, la usi veramente la struttura gerarchica fornita dalla MSH?
Altrimenti puoi tornare alla MSFlexGrid.
Ciao,
    Diego 


a dire il vero... non mi sono mai posto il problema.
Ho trovato la griglia... e l'ho utilizzata cercando le istruzioni che
mi servivano per lo scopo che mi ero prefissato...