Newsgroup: it.comp.appl.access
Titolo: Chdir e Copyfile da VBA

Salve a tutti,
mi sono impantanato su questo problema e spero che qualcuno mi dia una
mano.....
Ho la necessità di copiare diversi files Ascii creandone uno solo, come
l'istruzione "copy file1+file2+file3 file"; max potranno essere 10/15.
L'istruzione "copyfile",  funzione bene, ma purtroppo quando sono tanti
files  la stringa diventa troppo lunga.....
(copyfile
F:\Documenti\ArchivioDaImportare\nomefile1+F:\Documenti\ArchivioDaImportare\
nomefile2 F:\Documenti\ArchivioDaImportare\nomefile) .
Ho provato ad usare la funzione "ChDir" pensando di posizionarmi nella dir e
quindi non mettere tutto il percorso, ma non riesco a carne nulla.
Spero di essere stato chiaro, o forse no.....
Grazie
GS

 GS
Puoi fare una serie di accodamenti, anche con un ciclo se vuoi:
  type file1 > destinazione
  type file2 >> destinazione
  type file3 >> destinazione
  .....
Mi raccomando il doppio maggiore (>>) dalla seconda istruzione in poi,
altrimenti sovrascrive il file anziché accodare.
Ciao.
-Marco-
-- 
namor at inwind punto it
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ha scritto nel messaggio
news:e92vc4$4ro$1...@news.newsland.it...

Il problema è che lo dovrei fare da VBA e la funzione Type che ho trovato
nell'Help non fa la stessa cosa di quella del type di Dos
Grazie Cmq.
Ciao
GS

 GS
Forse ti va bene la soluzione seguente, nell'ipotesi che il formato dei
file sia lo stesso per tutti:
1) puoi collegare tutti i file ascii ognuno ad una tabella
cioè file1 -> Tabella1, file2 -> Tabella2 ecc
2) fare N query ti tipo APPEND che copino le varie tabelle (Tabellaxx) 
in una sola TABELL1 (TABELLONE :-) )
3) esportare il tutto in un file ASCII
4) Poi, una volta che funziona tutto,
 automatizzi tutto questo con il VBA (cioè l'esecusione delle query e
l'export)
Ciao,
Roberto
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 GS
Vedi nell'help VBA "Shell"
  Shell "cmd /C type D:\file1.txt > D:\destinazione.txt"
Puoi farlo anche da VBA aprendo uno per uno i file con Open ed accodandoli
in un nuovo file.


 > l'istruzione "copy file1+file2+file3 file"; max potranno essere 10/15.
Se sono file ascii puoi usare questo ciclo:
cd cartella
for %I IN (*.txt) DO type "%I" >>fileunico.txt
Se lo lanci direttamente da command-line. Se lo vuoi inserire in un
batch devi raddoppiare i %, così:
cd cartella
for %%I IN (*.txt) DO type "%%I" >>fileunico.txt
Le virgolette servono in caso di nomi con spazi.
ciao,
Panathos

 ha scritto nel messaggio
news:e94s48$343$1...@news.newsland.it...

Grazie Marco,
ma ho adottato la soluzione di Panathos, che funziona perfettamente.
Ciao
GS

 ha scritto nel messaggio
news:1152786724.0...@b28g2000cwb.googlegroups.com...
Marco Pizzamiglio ha scritto:






ciao,
Panathos
Grazie Panathos,
era proprio quello che cercavo.
Salut :-)
Ciao
GS

GS ha scritto:




Con un'accortezza: il file di destinazione lo devi mettere in un'altra
cartella, o devi dargli un'altra estensione diversa da .txt, altrimenti
rischi che venga riletto e riaccodato a sé stesso duplicando tutti o una
parte dei dati.


 parte dei dati.
Se il file destinazione non viene trovato alla partenza del ciclo, non
viene incluso come sorgente nel ciclo stesso.
ciao,
Panathos

 Marco Pizzamiglio ha scritto:


C'è un ritardo tra la prima scrittura sul file e il momento in cui questo
viene reso disponibile dal sistema operativo. Siccome sembra che il for
scorra i files in ordine alfabetico, se riesce a passare oltre al nome del
file destinazione entro questo lasso di tempo non lo vedrà, altrimenti sì.
Se dai al file destinazione un nome che vada a finire in fondo alla lista,
per esempio zzz.txt, verrà quasi sicuramente incluso. Viceversa se provi
con 000.txt non verrà mai incluso.
