Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Leggere dei nomi file e importarli in access

155 views
Skip to first unread message

Gianfry

unread,
Apr 17, 2008, 9:27:20 AM4/17/08
to
Ciao a tutti, vorrei sapere come devo fare per importare dei file
numerati progressivamente con all'interno dei record a quali devo
aggiungere il nome del file (sarebbe la data): mi spiego meglio.
i file si chiamano così
V_160408.DAT (all'interno ci sono diversi record con questo tracciato:
(CCCCCCCCCCCCQQQQQQVVVVVVVHHMM) esempio:
950000502385700010000008901530
950000502385700010000008901536
950000502381900010000014901536
950000502382600010000014901536

...e così via con altri file:
V_150408.DAT

Dovrei fare in modo di aprire il file V_160408.DAT e aggiungere ad
ogni record in fondo il nome del file aperto V_160408.DAT in modo da
ottenere:

950000502385700010000008901530V_160408.DAT
950000502385700010000008901536V_160408.DAT
950000502381900010000014901536V_160408.DAT
950000502382600010000014901536V_160408.DAT

Il tutto scandagliando la directory se esistono dei file che iniziano
con la lettera V_ far partire una funzione che mi realizzi ciò.

Spero di essere stato chiaro.

Grazie dei Vs. preziosi suggerimenti.
Gianfranco

Carlo Costarella

unread,
Apr 17, 2008, 12:28:45 PM4/17/08
to

"Gianfry" <gian...@gmail.com> ha scritto nel messaggio
news:85720e2a-0d4e-4522...@b64g2000hsa.googlegroups.com...

Ciao a tutti, vorrei sapere come devo fare per importare dei file
numerati progressivamente con all'interno dei record a quali devo
aggiungere il nome del file (sarebbe la data): mi spiego meglio.
i file si chiamano cosě

V_160408.DAT (all'interno ci sono diversi record con questo tracciato:
(CCCCCCCCCCCCQQQQQQVVVVVVVHHMM) esempio:
950000502385700010000008901530
950000502385700010000008901536
950000502381900010000014901536
950000502382600010000014901536

...e cosě via con altri file:
V_150408.DAT

Dovrei fare in modo di aprire il file V_160408.DAT e aggiungere ad
ogni record in fondo il nome del file aperto V_160408.DAT in modo da
ottenere:

950000502385700010000008901530V_160408.DAT
950000502385700010000008901536V_160408.DAT
950000502381900010000014901536V_160408.DAT
950000502382600010000014901536V_160408.DAT

Il tutto scandagliando la directory se esistono dei file che iniziano

con la lettera V_ far partire una funzione che mi realizzi ciň.

Spero di essere stato chiaro.

Grazie dei Vs. preziosi suggerimenti.
Gianfranco

-----------------------------
Una strada.
I file .dat, in questo caso, sono file di testo che possono essere importati
in una tabella di Access.
Anche se nell'elenco tipi di file dell'importazione tabella di Access non
trovi questo tipo puoi sempre importarli inserendo direttamente il nome.
Otterrai una tabella con i tuoi dati. Crea una query sulla tabella e gli
aggiungi il postfisso (V_160408.DAT). Alla fine esporti la query.
Puoi anche creare una specifica di importazione e creare una routine di
importazione, il tutto da codice.
Questo automatismo puň essere applicato sia alla ricerca dei file da
importare da una cartella sia per l'esecuzione della query.
Altra strada č quella di fare la scansione della cartella, ricercare tutti i
file .dat, aprirli uno alla volta, trovare il ritorno a capo o il line feed
(vbcr o vbcrlf) e lě inserire la scritta che ti serve.

In ogni caso per fare tutto ciň devi avere le necessarie conoscenze di VBA.
Non so se io o altri avrebbero il tempo di scrivere un algoritmo del genere
ma di sicuro trovi molto materiale sia qui che su www.sitocomune.com

Ciao, Carlo


Gianfry

unread,
Apr 17, 2008, 4:50:42 PM4/17/08
to
On 17 Apr, 18:28, "Carlo Costarella" <carlocoslib...@libero.it> wrote:
> "Gianfry" <gianfr...@gmail.com> ha scritto nel messaggionews:85720e2a-0d4e-4522...@b64g2000hsa.googlegroups.com...

> Ciao a tutti, vorrei sapere come devo fare per importare dei file
> numerati progressivamente con all'interno dei record a quali devo
> aggiungere il nome del file (sarebbe la data): mi spiego meglio.
> i file si chiamano così

> V_160408.DAT (all'interno ci sono diversi record con questo tracciato:
> (CCCCCCCCCCCCQQQQQQVVVVVVVHHMM) esempio:
> 950000502385700010000008901530
> 950000502385700010000008901536
> 950000502381900010000014901536
> 950000502382600010000014901536
>
> ...e così via con altri file:

> V_150408.DAT
>
> Dovrei fare in modo di aprire il file V_160408.DAT e aggiungere ad
> ogni record in fondo il nome del file aperto V_160408.DAT in modo da
> ottenere:
>
> 950000502385700010000008901530V_160408.DAT
> 950000502385700010000008901536V_160408.DAT
> 950000502381900010000014901536V_160408.DAT
> 950000502382600010000014901536V_160408.DAT
>
> Il tutto scandagliando la directory se esistono dei file che iniziano
> con la lettera V_ far partire una funzione che mi realizzi ciò.

>
> Spero di essere stato chiaro.
>
> Grazie dei Vs. preziosi suggerimenti.
> Gianfranco
>
> -----------------------------
> Una strada.
> I file .dat, in questo caso, sono file di testo che possono essere importati
> in una tabella di Access.
> Anche se nell'elenco tipi di file dell'importazione tabella di Access non
> trovi questo tipo puoi sempre importarli inserendo direttamente il nome.
> Otterrai una tabella con i tuoi dati. Crea una query sulla tabella e gli
> aggiungi il postfisso (V_160408.DAT). Alla fine esporti la query.
> Puoi anche creare una specifica di importazione e creare una routine di
> importazione, il tutto da codice.
> Questo automatismo può essere applicato sia alla ricerca dei file da

> importare da una cartella sia per l'esecuzione della query.
> Altra strada è quella di fare la scansione della cartella, ricercare tutti i

> file .dat, aprirli uno alla volta, trovare il ritorno a capo o il line feed
> (vbcr o vbcrlf) e lì inserire la scritta che ti serve.
>
> In ogni caso per fare tutto ciò devi avere le necessarie conoscenze di VBA.

> Non so se io o altri avrebbero il tempo di scrivere un algoritmo del genere
> ma di sicuro trovi molto materiale sia qui che suwww.sitocomune.com
>
> Ciao, Carlo

Grazie del suggerimento ma vorrei farlo con del codice come per
esempio
curiosando sul sitocomune ho trovato ed adattato quanto segue:

Private Sub Comando4_Click()
Dim d As String
Dim j As String
Dim s As String
Dim a As Integer
Dim Textline As String
j = "V*.dat" 'legge solo i file che iniziano con V
d = "f:\"
s = Dir(d & j)
Do While s <> ""
Open d + s For Input As #1
Open "c:\vendite\" + s For Output As #2
Do While Not EOF(1)
Line Input #1, Textline
Print #2, Textline + s
Loop
Close #1
Close #2
Loop
'End With
End Sub

il primo file me lo scrive giusto ma poi va in blocco.
Può essere che sbaglio a nidificare il comando Do While?

Grazie comunque

Alessandro Cara

unread,
Apr 18, 2008, 1:36:51 AM4/18/08
to
Gianfry wrote:
> On 17 Apr, 18:28, "Carlo Costarella" <carlocoslib...@libero.it> wrote:
>> "Gianfry" <gianfr...@gmail.com> ha scritto nel messaggionews:85720e2a-0d4e-4522...@b64g2000hsa.googlegroups.com...
>> Ciao a tutti, vorrei sapere come devo fare per importare dei file
>> numerati progressivamente con all'interno dei record a quali devo
>> aggiungere il nome del file (sarebbe la data): mi spiego meglio.
>> i file si chiamano cos�

>> V_160408.DAT (all'interno ci sono diversi record con questo tracciato:
>> (CCCCCCCCCCCCQQQQQQVVVVVVVHHMM) esempio:
>> 950000502385700010000008901530
>> 950000502385700010000008901536
>> 950000502381900010000014901536
>> 950000502382600010000014901536
>>
>> ...e cos� via con altri file:

>> V_150408.DAT
>>
>> Dovrei fare in modo di aprire il file V_160408.DAT e aggiungere ad
>> ogni record in fondo il nome del file aperto V_160408.DAT in modo da
>> ottenere:
>>
>> 950000502385700010000008901530V_160408.DAT
>> 950000502385700010000008901536V_160408.DAT
>> 950000502381900010000014901536V_160408.DAT
>> 950000502382600010000014901536V_160408.DAT
>>
>> Il tutto scandagliando la directory se esistono dei file che iniziano
>> con la lettera V_ far partire una funzione che mi realizzi ci�.

>>
>> Spero di essere stato chiaro.
>>
>> Grazie dei Vs. preziosi suggerimenti.
>> Gianfranco
>>
>> -----------------------------
>> Una strada.
>> I file .dat, in questo caso, sono file di testo che possono essere importati
>> in una tabella di Access.
>> Anche se nell'elenco tipi di file dell'importazione tabella di Access non
>> trovi questo tipo puoi sempre importarli inserendo direttamente il nome.
>> Otterrai una tabella con i tuoi dati. Crea una query sulla tabella e gli
>> aggiungi il postfisso (V_160408.DAT). Alla fine esporti la query.
>> Puoi anche creare una specifica di importazione e creare una routine di
>> importazione, il tutto da codice.
>> Questo automatismo pu� essere applicato sia alla ricerca dei file da

>> importare da una cartella sia per l'esecuzione della query.
>> Altra strada � quella di fare la scansione della cartella, ricercare tutti i

>> file .dat, aprirli uno alla volta, trovare il ritorno a capo o il line feed
>> (vbcr o vbcrlf) e l� inserire la scritta che ti serve.
>>
>> In ogni caso per fare tutto ci� devi avere le necessarie conoscenze di VBA.

>> Non so se io o altri avrebbero il tempo di scrivere un algoritmo del genere
>> ma di sicuro trovi molto materiale sia qui che suwww.sitocomune.com
>>
>> Ciao, Carlo
>
> Grazie del suggerimento ma vorrei farlo con del codice come per
> esempio
> curiosando sul sitocomune ho trovato ed adattato quanto segue:
>
> Private Sub Comando4_Click()
> Dim d As String
> Dim j As String
> Dim s As String
> Dim a As Integer
> Dim Textline As String
> j = "V*.dat" 'legge solo i file che iniziano con V
> d = "f:\"
> s = Dir(d & j)
> Do While s <> ""
> Open d + s For Input As #1
> Open "c:\vendite\" + s For Output As #2
> Do While Not EOF(1)
> Line Input #1, Textline
> Print #2, Textline + s
> Loop
> Close #1
> Close #2
qui dovresti "dirare" il successivo file
s = dir()
> Loop

> 'End With
> End Sub
>
> il primo file me lo scrive giusto ma poi va in blocco.

> Pu� essere che sbaglio a nidificare il comando Do While?
>
> Grazie comunque


--
ac
y-1=x

Gianfry

unread,
Apr 18, 2008, 3:54:32 AM4/18/08
to
Grazie, funziona benissimo. Mi mancava qualcosa!!!

Sergio MAZZA

unread,
Apr 18, 2008, 4:57:31 AM4/18/08
to
"Alessandro Cara" <alessan...@ay-1asistemi.it> ha scritto nel messaggio
news:ysWNj.14732$o06....@tornado.fastwebnet.it...
---omissis---
> --
> ac
> y-1=x

A volte ritornano...

Ciao.
--
Sergio MAZZA


Alessandro Cara

unread,
Apr 18, 2008, 4:07:54 PM4/18/08
to
Sergio MAZZA wrote:
> "Alessandro Cara" <alessan...@ay-1asistemi.it> ha scritto nel messaggio
> news:ysWNj.14732$o06....@tornado.fastwebnet.it...
> ---omissis---
>> --
>> ac
>> y-1=x
>
> A volte ritornano...
Il SSN e' inaffidabile. Ci mette sempre un sacco di tempo a fare le
riparazioni. Ho tentato di spiegare al "capataz" che avevo impegni. Non
c'e' stato verso, mi ha detto che per una trentina di giorni manco un
muscolo dovevo muovere e tutto cio' per tre squallide vitarelle da
mettere su un semiasse. E la convergenza ancora non va bene malgrado
l'intervento in un'officina di specialisti.

--
ac
y-1=x

Sergio MAZZA

unread,
Apr 19, 2008, 7:02:52 AM4/19/08
to
"Alessandro Cara" <alessan...@ay-1asistemi.it> ha scritto nel messaggio
news:bd7Oj.15743$o06....@tornado.fastwebnet.it...

> Il SSN e' inaffidabile. Ci mette sempre un sacco di tempo a fare le
> riparazioni. Ho tentato di spiegare al "capataz" che avevo impegni. Non
> c'e' stato verso, mi ha detto che per una trentina di giorni manco un
> muscolo dovevo muovere e tutto cio' per tre squallide vitarelle da mettere
> su un semiasse. E la convergenza ancora non va bene malgrado l'intervento
> in un'officina di specialisti.
>
> --
> ac
> y-1=x

Acc...
Quindi stavolta niente Olimpiadi?

Vabbé; magari ti rifai con lo Stratego e NG; auguri!

Ciao.
--
Sergio MAZZA


0 new messages