Discussione:
Spaziatura caratteri.
(troppo vecchio per rispondere)
giuseppe
2005-05-21 17:31:31 UTC
Permalink
Ciao a tutti voi,
vorrei sottoporre il mio problema, principalmente agli esperti di VB per
access.
Ho già ottenuto diverse valide risposte da un altro partecipante a questo
NG, il quale mi ha indirizzato a cercare informazioni appunto sulla
spaziatura caratteri all'interno dei gruppi di Google, e qui ho trovato
qualcosa che può fare al caso mio.
Ho trovato del codice scritto per spaziare una parola: "aiuto" diventa "a i
u t o".
Il codice è il seguente:
Public Function TestoSpa(testo As String, numspazi As Integer) As String
Dim Lung As Integer
Dim i As Integer
Lung = Len(testo)
TestoSpa = Left(testo, 1) & Space(numspazi)
For i = 2 To Lung
TestoSpa = TestoSpa & Mid(testo, i, 1) & Space(numspazi)
Next
MsgBox TestoSpa
End Function


Questo funziona e ti fa inserire quanti spazi desideri.
Ciao.
----------------------------------------------------------------------------------------

Mi domandavo se era possibile adattare questo codice al mio problema.
Pensavo fosse possibile scrivere una function, attivabile con un pulsante di
controllo in un menu, che apre una tabella (miatabella), che legge i dati
dei campi e mi restituisce un file ASCII, (un file TXT) contenente i dati
dei singoli record della miatabella, spaziati ognuno obbligatoriamente, per
come mi sono stati richiesti. Fare questo lavoro manualmente richiederebbe
un sacco di tempo,
oltre che una estrema precisione, col rischio di vedermi scartare i record
con i dati che non rispettano tale formattazione.
Ho già fatto delle prove a mano, ma a nulla è valso tentare di formattare i
dati utilizzando punti di tabulazione, perchè in presenza di doppi nomi e
doppi nomi per cognome, word non rispetta le tabulazioni per mancanza di
spazio sulla riga orizzontale.

Il destinatario del mio lavoro mi richiede un file ASCII con le seguenti
caratteristiche:

Il file delle richieste deve essere in formato ASCII ed avere il seguente
tracciato:
i campi sono a lunghezza fissa e pertanto non necessitano di separatori. la
sequenza è:

35.............................35................................35.................................10......................24....................1
cognome...................nome............................luogo di
nascita............data di nascita...paternità..........sesso.

cognome: occupa 35 caratteri alfanumerici;
nome: occupa 35 caratteri alfanumerici (da 36 a 70);
luogo di nascita: occupa 35 caratteri alfanumerici (da 71 a 105);
data di nascita: occupa 10 caratteri alfanumerici (da 106 a 115);
Paternità: occupa 24 caratteri alfanumerici (da 116 a 139);
Sesso: occupa 1 carattere alfanumerico (a 140)


Mi sono chiesto se è possibile adattare con qualche modifica, il codice
sopra riportato per il caso della casella di testo, che restituisce una
parola con uno spazio fra una lettera e l'altra, ma a me non serve spaziare
una parola, bensì mi serve creare un tracciato, un record con una sequenza
di dati con una spaziatura ben precisa tra un dato e l'altro perchè ho 6
campi in tabella, ognuno con un dato da gestire.

Sono nelle Vs. mani, altrimenti il destinatario mi chiederà di stampare su
carta i dati dei singoli campi e così avrò le risposte con un ritardo
notevolissimo. Grazie in anticipo a tutti gli esperti che mi aiuiteranno a
risolvere questo rompicapo. Giuseppe.
ALESSANDRO Baraldi
2005-05-21 17:39:15 UTC
Permalink
Post by giuseppe
Ciao a tutti voi,
vorrei sottoporre il mio problema, principalmente agli esperti di VB per
access.
Ho già ottenuto diverse valide risposte da un altro partecipante a questo
NG, il quale mi ha indirizzato a cercare informazioni appunto sulla
spaziatura caratteri all'interno dei gruppi di Google, e qui ho trovato
qualcosa che può fare al caso mio.
Ho trovato del codice scritto per spaziare una parola: "aiuto" diventa "a i
u t o".
Public Function TestoSpa(testo As String, numspazi As Integer) As String
Dim Lung As Integer
Dim i As Integer
Lung = Len(testo)
TestoSpa = Left(testo, 1) & Space(numspazi)
For i = 2 To Lung
TestoSpa = TestoSpa & Mid(testo, i, 1) & Space(numspazi)
Next
MsgBox TestoSpa
End Function
Questo funziona e ti fa inserire quanti spazi desideri.
Ciao.
--------------------------------------------------------------------------
--------------
Post by giuseppe
Mi domandavo se era possibile adattare questo codice al mio problema.
Pensavo fosse possibile scrivere una function, attivabile con un pulsante di
controllo in un menu, che apre una tabella (miatabella), che legge i dati
dei campi e mi restituisce un file ASCII, (un file TXT) contenente i dati
dei singoli record della miatabella, spaziati ognuno obbligatoriamente, per
come mi sono stati richiesti. Fare questo lavoro manualmente richiederebbe
un sacco di tempo,
oltre che una estrema precisione, col rischio di vedermi scartare i record
con i dati che non rispettano tale formattazione.
Ho già fatto delle prove a mano, ma a nulla è valso tentare di formattare i
dati utilizzando punti di tabulazione, perchè in presenza di doppi nomi e
doppi nomi per cognome, word non rispetta le tabulazioni per mancanza di
spazio sulla riga orizzontale.
Il destinatario del mio lavoro mi richiede un file ASCII con le seguenti
Il file delle richieste deve essere in formato ASCII ed avere il seguente
i campi sono a lunghezza fissa e pertanto non necessitano di separatori. la
35.............................35................................35.........
........................10......................24....................1
Post by giuseppe
cognome...................nome............................luogo di
nascita............data di nascita...paternità..........sesso.
cognome: occupa 35 caratteri alfanumerici;
nome: occupa 35 caratteri alfanumerici (da 36 a 70);
luogo di nascita: occupa 35 caratteri alfanumerici (da 71 a 105);
data di nascita: occupa 10 caratteri alfanumerici (da 106 a 115);
Paternità: occupa 24 caratteri alfanumerici (da 116 a 139);
Sesso: occupa 1 carattere alfanumerico (a 140)
Mi sono chiesto se è possibile adattare con qualche modifica, il codice
sopra riportato per il caso della casella di testo, che restituisce una
parola con uno spazio fra una lettera e l'altra, ma a me non serve spaziare
una parola, bensì mi serve creare un tracciato, un record con una sequenza
di dati con una spaziatura ben precisa tra un dato e l'altro perchè ho 6
campi in tabella, ognuno con un dato da gestire.
Sono nelle Vs. mani, altrimenti il destinatario mi chiederà di stampare su
carta i dati dei singoli campi e così avrò le risposte con un ritardo
notevolissimo. Grazie in anticipo a tutti gli esperti che mi aiuiteranno a
risolvere questo rompicapo. Giuseppe.
Io credo che tu stia predendo la strada sbagliata.
Partendo dal fatto che un file ASCII non è altro che un file di testo non
formattato, WORD o qualsiasi altra diavoleria non va usata.
Se ti leggi le specifiche di esportazione dati con il Metodo TransferText
tratte dall'Help in linea, senza fare troppe ricerche, scopri che è
possibile
in automatico esportare un File di Testo a spaziatura FISSA, che se non
ho capito male è proprio il tuo caso.

Se poi dovessi avere esigenze più particolari, sempre leggendo il medesimo
argomento scopri che è possibile impostare un riferimento ad un file di
Specifiche
che casualmente è proprio quello che potrebbe risolveri il problema.

Fatti un file ASCII, a mano, con una sola riga formattato come serve, ed
importalo
con il Wizzard, ad un certo punto avrai la possibilità di andare nei
Dettagli dell'Importazione
e da li puoi impostare in modo semplice ed efficace tutta la
parametrizzazione del
file.
Devi dare un nome a questa formattazione, e potrai richiamarla sia in
IMPORTAZIONE
che in ESPORTAZIONE.

Facci sapere se questo ti ha semplificato la questione.

Ciao
--
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.mantuanet.it/alessandro.baraldi/
---------------------------------------------------------------------------
giuseppe
2005-05-21 19:52:55 UTC
Permalink
Post by giuseppe
Post by giuseppe
Ciao a tutti voi,
vorrei sottoporre il mio problema, principalmente agli esperti di VB per
access.
Ho già ottenuto diverse valide risposte da un altro partecipante a questo
NG, il quale mi ha indirizzato a cercare informazioni appunto sulla
spaziatura caratteri all'interno dei gruppi di Google, e qui ho trovato
qualcosa che può fare al caso mio.
Ho trovato del codice scritto per spaziare una parola: "aiuto" diventa
"a
i
Post by giuseppe
u t o".
Public Function TestoSpa(testo As String, numspazi As Integer) As String
Dim Lung As Integer
Dim i As Integer
Lung = Len(testo)
TestoSpa = Left(testo, 1) & Space(numspazi)
For i = 2 To Lung
TestoSpa = TestoSpa & Mid(testo, i, 1) & Space(numspazi)
Next
MsgBox TestoSpa
End Function
Questo funziona e ti fa inserire quanti spazi desideri.
Ciao.
--------------------------------------------------------------------------
--------------
Post by giuseppe
Mi domandavo se era possibile adattare questo codice al mio problema.
Pensavo fosse possibile scrivere una function, attivabile con un pulsante
di
Post by giuseppe
controllo in un menu, che apre una tabella (miatabella), che legge i dati
dei campi e mi restituisce un file ASCII, (un file TXT) contenente i dati
dei singoli record della miatabella, spaziati ognuno obbligatoriamente,
per
Post by giuseppe
come mi sono stati richiesti. Fare questo lavoro manualmente
richiederebbe
un sacco di tempo,
oltre che una estrema precisione, col rischio di vedermi scartare i record
con i dati che non rispettano tale formattazione.
Ho già fatto delle prove a mano, ma a nulla è valso tentare di formattare
i
Post by giuseppe
dati utilizzando punti di tabulazione, perchè in presenza di doppi nomi e
doppi nomi per cognome, word non rispetta le tabulazioni per mancanza di
spazio sulla riga orizzontale.
Il destinatario del mio lavoro mi richiede un file ASCII con le seguenti
Il file delle richieste deve essere in formato ASCII ed avere il
seguente
Post by giuseppe
i campi sono a lunghezza fissa e pertanto non necessitano di separatori.
la
35.............................35................................35.........
........................10......................24....................1
Post by giuseppe
cognome...................nome............................luogo di
nascita............data di nascita...paternità..........sesso.
cognome: occupa 35 caratteri alfanumerici;
nome: occupa 35 caratteri alfanumerici (da 36 a 70);
luogo di nascita: occupa 35 caratteri alfanumerici (da 71 a 105);
data di nascita: occupa 10 caratteri alfanumerici (da 106 a 115);
Paternità: occupa 24 caratteri alfanumerici (da 116 a 139);
Sesso: occupa 1 carattere alfanumerico (a 140)
Mi sono chiesto se è possibile adattare con qualche modifica, il codice
sopra riportato per il caso della casella di testo, che restituisce una
parola con uno spazio fra una lettera e l'altra, ma a me non serve
spaziare
Post by giuseppe
una parola, bensì mi serve creare un tracciato, un record con una sequenza
di dati con una spaziatura ben precisa tra un dato e l'altro perchè ho 6
campi in tabella, ognuno con un dato da gestire.
Sono nelle Vs. mani, altrimenti il destinatario mi chiederà di stampare su
carta i dati dei singoli campi e così avrò le risposte con un ritardo
notevolissimo. Grazie in anticipo a tutti gli esperti che mi aiuiteranno a
risolvere questo rompicapo. Giuseppe.
Io credo che tu stia predendo la strada sbagliata.
Partendo dal fatto che un file ASCII non è altro che un file di testo non
formattato, WORD o qualsiasi altra diavoleria non va usata.
Se ti leggi le specifiche di esportazione dati con il Metodo TransferText
tratte dall'Help in linea, senza fare troppe ricerche, scopri che è
possibile
in automatico esportare un File di Testo a spaziatura FISSA, che se non
ho capito male è proprio il tuo caso.
Se poi dovessi avere esigenze più particolari, sempre leggendo il medesimo
argomento scopri che è possibile impostare un riferimento ad un file di
Specifiche
che casualmente è proprio quello che potrebbe risolveri il problema.
Fatti un file ASCII, a mano, con una sola riga formattato come serve, ed
importalo
con il Wizzard, ad un certo punto avrai la possibilità di andare nei
Dettagli dell'Importazione
e da li puoi impostare in modo semplice ed efficace tutta la
parametrizzazione del
file.
Devi dare un nome a questa formattazione, e potrai richiamarla sia in
IMPORTAZIONE
che in ESPORTAZIONE.
Facci sapere se questo ti ha semplificato la questione.
Ciao
--
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.mantuanet.it/alessandro.baraldi/
---------------------------------------------------------------------------
Grazie per i tuoi chiarimenti, almeno così imboccherò la strada giusta.
Purtroppo ora non posso applicare quanto mi hai detto perchè il problema è
fermo in ufficio. Però vorrei capire un'altra cosa. Ho una tabella con sei
campi (cognome, nome ecc...), creata con una query di creazione tabella che
estrae i dati solo dai campi da me selezionati. A questo punto io devo
esportare tutti i dati di questa tabella, sei campi per ogni record,
all'esterno del database e in una cartella scelta da me, in un file di testo
che poi è un file ASCII, quindi modificabile con notepad se ho ben capito, e
qui word non c'entra niente. Forse io non ho mai usato usata la procedura da
te descritta, la procedura di esportare i dati di una tabella in un foglio
di calcolo o di importare i dati dall'esterno quella la conosco partendo dal
menu file.
Passando all'atto pratico io come devo procedere ? Apro il notepad e mi creo
un file a cui do un nome, ad esempio Pippo; poi all'interno cosa faccio? Hai
detto di scrivere una sola riga formattata come serve. Come ? Se ho ben
capito questo file può essere usato come un modello di riferimento da
importare attraverso le specifiche di formattazione. In che modo devo
impostare la spaziatura tra un campo e l'altro ? Che cosa scrivo in una sola
riga ? Forse questa è la cosa più stupida da fare. Mi puoi creare un esempio
da adattare poi al caso mio? Così lunedi mattina mi metto subito all'opera e
creo sto benedetto file da inviare al destinatario del lavoro da me
richiesto.
Grazie di tutto e soprattutto per la pazienza che avete voi tutti qui.
Giuseppe.
Gaspare
2005-05-21 20:29:17 UTC
Permalink
Post by giuseppe
Post by giuseppe
Post by giuseppe
Ciao a tutti voi,
vorrei sottoporre il mio problema, principalmente agli esperti di VB per
access.
Ho già ottenuto diverse valide risposte da un altro partecipante a questo
NG, il quale mi ha indirizzato a cercare informazioni appunto sulla
spaziatura caratteri all'interno dei gruppi di Google, e qui ho trovato
qualcosa che può fare al caso mio.
Ho trovato del codice scritto per spaziare una parola: "aiuto" diventa
"a
i
Post by giuseppe
u t o".
Public Function TestoSpa(testo As String, numspazi As Integer) As String
Dim Lung As Integer
Dim i As Integer
Lung = Len(testo)
TestoSpa = Left(testo, 1) & Space(numspazi)
For i = 2 To Lung
TestoSpa = TestoSpa & Mid(testo, i, 1) & Space(numspazi)
Next
MsgBox TestoSpa
End Function
Questo funziona e ti fa inserire quanti spazi desideri.
Ciao.
--------------------------------------------------------------------------
--------------
Post by giuseppe
Mi domandavo se era possibile adattare questo codice al mio problema.
Pensavo fosse possibile scrivere una function, attivabile con un pulsante
di
Post by giuseppe
controllo in un menu, che apre una tabella (miatabella), che legge i dati
dei campi e mi restituisce un file ASCII, (un file TXT) contenente i dati
dei singoli record della miatabella, spaziati ognuno obbligatoriamente,
per
Post by giuseppe
come mi sono stati richiesti. Fare questo lavoro manualmente
richiederebbe
un sacco di tempo,
oltre che una estrema precisione, col rischio di vedermi scartare i record
con i dati che non rispettano tale formattazione.
Ho già fatto delle prove a mano, ma a nulla è valso tentare di formattare
i
Post by giuseppe
dati utilizzando punti di tabulazione, perchè in presenza di doppi nomi e
doppi nomi per cognome, word non rispetta le tabulazioni per mancanza di
spazio sulla riga orizzontale.
Il destinatario del mio lavoro mi richiede un file ASCII con le seguenti
Il file delle richieste deve essere in formato ASCII ed avere il
seguente
Post by giuseppe
i campi sono a lunghezza fissa e pertanto non necessitano di separatori.
la
35.............................35................................35.........
........................10......................24....................1
Post by giuseppe
cognome...................nome............................luogo di
nascita............data di nascita...paternità..........sesso.
cognome: occupa 35 caratteri alfanumerici;
nome: occupa 35 caratteri alfanumerici (da 36 a 70);
luogo di nascita: occupa 35 caratteri alfanumerici (da 71 a 105);
data di nascita: occupa 10 caratteri alfanumerici (da 106 a 115);
Paternità: occupa 24 caratteri alfanumerici (da 116 a 139);
Sesso: occupa 1 carattere alfanumerico (a 140)
Mi sono chiesto se è possibile adattare con qualche modifica, il codice
sopra riportato per il caso della casella di testo, che restituisce una
parola con uno spazio fra una lettera e l'altra, ma a me non serve
spaziare
Post by giuseppe
una parola, bensì mi serve creare un tracciato, un record con una sequenza
di dati con una spaziatura ben precisa tra un dato e l'altro perchè ho 6
campi in tabella, ognuno con un dato da gestire.
Sono nelle Vs. mani, altrimenti il destinatario mi chiederà di stampare su
carta i dati dei singoli campi e così avrò le risposte con un ritardo
notevolissimo. Grazie in anticipo a tutti gli esperti che mi aiuiteranno a
risolvere questo rompicapo. Giuseppe.
Io credo che tu stia predendo la strada sbagliata.
Partendo dal fatto che un file ASCII non è altro che un file di testo non
formattato, WORD o qualsiasi altra diavoleria non va usata.
Se ti leggi le specifiche di esportazione dati con il Metodo TransferText
tratte dall'Help in linea, senza fare troppe ricerche, scopri che è
possibile
in automatico esportare un File di Testo a spaziatura FISSA, che se non
ho capito male è proprio il tuo caso.
Se poi dovessi avere esigenze più particolari, sempre leggendo il medesimo
argomento scopri che è possibile impostare un riferimento ad un file di
Specifiche
che casualmente è proprio quello che potrebbe risolveri il problema.
Fatti un file ASCII, a mano, con una sola riga formattato come serve, ed
importalo
con il Wizzard, ad un certo punto avrai la possibilità di andare nei
Dettagli dell'Importazione
e da li puoi impostare in modo semplice ed efficace tutta la
parametrizzazione del
file.
Devi dare un nome a questa formattazione, e potrai richiamarla sia in
IMPORTAZIONE
che in ESPORTAZIONE.
Facci sapere se questo ti ha semplificato la questione.
Ciao
--
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.mantuanet.it/alessandro.baraldi/
---------------------------------------------------------------------------
Grazie per i tuoi chiarimenti, almeno così imboccherò la strada giusta.
Purtroppo ora non posso applicare quanto mi hai detto perchè il problema è
fermo in ufficio. Però vorrei capire un'altra cosa. Ho una tabella con sei
campi (cognome, nome ecc...), creata con una query di creazione tabella
che estrae i dati solo dai campi da me selezionati. A questo punto io devo
esportare tutti i dati di questa tabella, sei campi per ogni record,
all'esterno del database e in una cartella scelta da me, in un file di
testo che poi è un file ASCII, quindi modificabile con notepad se ho ben
capito, e qui word non c'entra niente. Forse io non ho mai usato usata la
procedura da te descritta, la procedura di esportare i dati di una tabella
in un foglio di calcolo o di importare i dati dall'esterno quella la
conosco partendo dal menu file.
Passando all'atto pratico io come devo procedere ? Apro il notepad e mi
creo un file a cui do un nome, ad esempio Pippo; poi all'interno cosa
faccio? Hai detto di scrivere una sola riga formattata come serve. Come ?
Se ho ben capito questo file può essere usato come un modello di
riferimento da importare attraverso le specifiche di formattazione. In che
modo devo impostare la spaziatura tra un campo e l'altro ? Che cosa scrivo
in una sola riga ? Forse questa è la cosa più stupida da fare. Mi puoi
creare un esempio da adattare poi al caso mio? Così lunedi mattina mi
metto subito all'opera e creo sto benedetto file da inviare al
destinatario del lavoro da me richiesto.
Grazie di tutto e soprattutto per la pazienza che avete voi tutti qui.
Giuseppe.
Ciao,
Alessandro è stato abbastanza chiaro:
1) apre il blocco note di windows o un qualsiasi editor di codice ascii...

2) scrivi una riga come da te formattata con gli spazi etc...ovviamente gli
passi i valori ...ad es. i tuoi dati anagrafici
secondo il tuo schema
35.............................35................................35......... ........................10......................24....................1 cognome...................nome............................luogo di nascita............data di nascita...paternità..........sesso.3) Salvi il file es. prova.txt4) in access: cari dagli esterni-> importa (selezioni file di testo) eprocedi scegliendo a larghezza fissa e quindi vai in avanzate perdeterminare il tipo di dati, l'inizio, la lunghezza etc MA ANCHE PER SALVARELA SPECIFICA DI IMPORTAZIONE che potrai richiamare in un secondo momentocliccando su "specifiche"5)Alla fine sei crei una nuova tabella puoi controllare, in modalitàstuttura, se sono stati mantenute le tue direttiveSe tutto è ok applichi la specifica all'intero file...Buona serata :-)Gaspare
Gaspare
2005-05-21 20:36:38 UTC
Permalink
Post by giuseppe
Passando all'atto pratico io come devo procedere ? Apro il notepad e mi creo
un file a cui do un nome, ad esempio Pippo; poi all'interno cosa faccio?
Hai detto di scrivere una sola riga formattata come serve. Come ? Se ho
ben capito questo file può essere usato come un modello di riferimento da
importare attraverso le specifiche di formattazione. In che modo devo
impostare la spaziatura tra un campo e l'altro ? Che cosa scrivo in una
sola riga ? Forse questa è la cosa più stupida da fare. Mi puoi creare un
esempio da adattare poi al caso mio? Così lunedi mattina mi metto subito
all'opera e creo sto benedetto file da inviare al destinatario del lavoro
da me richiesto.
Grazie di tutto e soprattutto per la pazienza che avete voi tutti qui.
Giuseppe.
Scusa per l'impaginazione...ci riprovo

Ciao,
Alessandro è stato abbastanza chiaro:

1) apre il blocco note di windows o un qualsiasi editor di codice ascii...

2) scrivi una riga come da te formattata con gli spazi etc...ovviamente gli
passi i valori ...ad es. i tuoi dati anagrafici
secondo il tuo schema
35.............................35................................35.................................10......................24....................1cognome...................nome............................luogo dinascita............data di nascita...paternità..........sesso.3) Salvi il file es. prova.txt4) in access: cari dagli esterni-> importa (selezioni file di testo)eprocedi scegliendo a larghezza fissa e quindi vai in avanzateperdeterminare il tipo di dati, l'inizio, la lunghezza etc MA ANCHE PERSALVARELA SPECIFICA DI IMPORTAZIONE che potrai richiamare in un secondomomentocliccando su "specifiche"5)Alla fine sei crei una nuova tabella puoi controllare, inmodalitàstuttura, se sono stati mantenute le tue direttiveSe tutto è okapplichi la specifica all'intero file...Buona serata :-)Gaspare
giuseppe
2005-05-21 23:36:45 UTC
Permalink
Post by Gaspare
Post by giuseppe
Passando all'atto pratico io come devo procedere ? Apro il notepad e mi creo
un file a cui do un nome, ad esempio Pippo; poi all'interno cosa faccio?
Hai detto di scrivere una sola riga formattata come serve. Come ? Se ho
ben capito questo file può essere usato come un modello di riferimento da
importare attraverso le specifiche di formattazione. In che modo devo
impostare la spaziatura tra un campo e l'altro ? Che cosa scrivo in una
sola riga ? Forse questa è la cosa più stupida da fare. Mi puoi creare un
esempio da adattare poi al caso mio? Così lunedi mattina mi metto subito
all'opera e creo sto benedetto file da inviare al destinatario del lavoro
da me richiesto.
Grazie di tutto e soprattutto per la pazienza che avete voi tutti qui.
Giuseppe.
Scusa per l'impaginazione...ci riprovo
Ciao,
1) apre il blocco note di windows o un qualsiasi editor di codice ascii...
2) scrivi una riga come da te formattata con gli spazi etc...ovviamente
gli passi i valori ...ad es. i tuoi dati anagrafici
secondo il tuo schema
35.............................35................................35.................................10......................24....................1
cognome...................nome............................luogo
dinascita............data di nascita...paternità..........sesso.3)
Salvi il file es. prova.txt4) in access: cari dagli esterni-> importa
(selezioni file di testo)eprocedi scegliendo a larghezza fissa e quindi vai
in avanzate perdeterminare il tipo di dati, l'inizio, la lunghezza etc MA
ANCHE PER SALVARELA SPECIFICA DI IMPORTAZIONE che potrai richiamare in un
secondo momento cliccando su "specifiche"5)Alla fine sei crei una nuova
tabella puoi controllare, inmodalità struttura, se sono stati mantenute le
tue direttive. Se tutto è ok applichi la specifica all'intero file...Buona
serata :-)Gaspare
Grazie Gaspare anche per il tuo suggerimento.
Non discuto sulla chiarezza di Baraldi, sono io che mi stavo complicando la
vita. A volte le cose semplici mi appaiono
complicate. Lunedì quando sarò di nuovo al lavoro tradurrò in pratica tutto
quanto qui è stato chiarito grazie a voi.
Ciao e buona notte.
Gaspare
2005-05-22 04:00:26 UTC
Permalink
Post by giuseppe
Post by Gaspare
Post by giuseppe
Passando all'atto pratico io come devo procedere ? Apro il notepad e mi creo
un file a cui do un nome, ad esempio Pippo; poi all'interno cosa faccio?
Hai detto di scrivere una sola riga formattata come serve. Come ? Se ho
ben capito questo file può essere usato come un modello di riferimento
da importare attraverso le specifiche di formattazione. In che modo devo
impostare la spaziatura tra un campo e l'altro ? Che cosa scrivo in una
sola riga ? Forse questa è la cosa più stupida da fare. Mi puoi creare
un esempio da adattare poi al caso mio? Così lunedi mattina mi metto
subito all'opera e creo sto benedetto file da inviare al destinatario
del lavoro da me richiesto.
Grazie di tutto e soprattutto per la pazienza che avete voi tutti qui.
Giuseppe.
Scusa per l'impaginazione...ci riprovo
Ciao,
1) apre il blocco note di windows o un qualsiasi editor di codice ascii...
2) scrivi una riga come da te formattata con gli spazi etc...ovviamente
gli passi i valori ...ad es. i tuoi dati anagrafici
secondo il tuo schema
35.............................35................................35.................................10......................24....................1
cognome...................nome............................luogo
dinascita............data di nascita...paternità..........sesso.3)
Salvi il file es. prova.txt4) in access: cari dagli esterni-> importa
(selezioni file di testo)eprocedi scegliendo a larghezza fissa e quindi
vai in avanzate perdeterminare il tipo di dati, l'inizio, la lunghezza etc
MA ANCHE PER SALVARELA SPECIFICA DI IMPORTAZIONE che potrai richiamare in
un secondo momento cliccando su "specifiche"5)Alla fine sei crei una
nuova tabella puoi controllare, inmodalità struttura, se sono stati
mantenute le tue direttive. Se tutto è ok applichi la specifica all'intero
file...Buona serata :-)Gaspare
Grazie Gaspare anche per il tuo suggerimento.
Non discuto sulla chiarezza di Baraldi, sono io che mi stavo complicando
la vita. A volte le cose semplici mi appaiono
complicate. Lunedì quando sarò di nuovo al lavoro tradurrò in pratica
tutto quanto qui è stato chiarito grazie a voi.
Ciao e buona notte.
Ciao e buona domenica :-)
Gaspare
giuseppe
2005-05-22 15:44:14 UTC
Permalink
Post by Gaspare
Post by giuseppe
Post by Gaspare
Post by giuseppe
Passando all'atto pratico io come devo procedere ? Apro il notepad e mi creo
un file a cui do un nome, ad esempio Pippo; poi all'interno cosa
faccio? Hai detto di scrivere una sola riga formattata come serve. Come
? Se ho ben capito questo file può essere usato come un modello di
riferimento da importare attraverso le specifiche di formattazione. In
che modo devo impostare la spaziatura tra un campo e l'altro ? Che cosa
scrivo in una sola riga ? Forse questa è la cosa più stupida da fare.
Mi puoi creare un esempio da adattare poi al caso mio? Così lunedi
mattina mi metto subito all'opera e creo sto benedetto file da inviare
al destinatario del lavoro da me richiesto.
Grazie di tutto e soprattutto per la pazienza che avete voi tutti qui.
Giuseppe.
Scusa per l'impaginazione...ci riprovo
Ciao,
1) apre il blocco note di windows o un qualsiasi editor di codice ascii...
2) scrivi una riga come da te formattata con gli spazi etc...ovviamente
gli passi i valori ...ad es. i tuoi dati anagrafici
secondo il tuo schema
35.............................35................................35.................................10......................24....................1
cognome...................nome............................luogo
dinascita............data di nascita...paternità..........sesso.3)
Salvi il file es. prova.txt4) in access: cari dagli esterni-> importa
(selezioni file di testo)eprocedi scegliendo a larghezza fissa e quindi
vai in avanzate perdeterminare il tipo di dati, l'inizio, la lunghezza
etc MA ANCHE PER SALVARELA SPECIFICA DI IMPORTAZIONE che potrai
richiamare in un secondo momento cliccando su "specifiche"5)Alla fine
sei crei una nuova tabella puoi controllare, inmodalità struttura, se
sono stati mantenute le tue direttive. Se tutto è ok applichi la
specifica all'intero file...Buona serata :-)Gaspare
Grazie Gaspare anche per il tuo suggerimento.
Non discuto sulla chiarezza di Baraldi, sono io che mi stavo complicando
la vita. A volte le cose semplici mi appaiono
complicate. Lunedì quando sarò di nuovo al lavoro tradurrò in pratica
tutto quanto qui è stato chiarito grazie a voi.
Ciao e buona notte.
Ciao e buona domenica :-)
Gaspare
Ciao Gaspare,
anche se non ho i dati, qui a casa ho fatto comunque delle prove creando una
tabella delle specifiche di formattazione
dei campi. Non mi è chiara una cosa. La tabella con le spcifiche deve
contenere 6 campi, ognuno con la larghezza richiesta, o un solo campo, largo
140 caratteri (35+35+35+10+24+1) con una sola riga contenente anche tutti
gli altri campi opportunamente spaziati fissando i limiti durante
l'importazione ? Di seguito puoi vedere quello che ho ottenuto.

1a specifica
Specifiche spaziatura fissa_3 Campo1
Cognome----------------------------Nome-------------------------------Luogodinascita---------------------ddnascita-paternita---------------s


2a specifica

Specifiche spaziatura fissa_2 Campo1 Campo2 Campo3 Campo4 Campo5 Campo6
Cognome----------------------------
Nome------------------------------- Luogodinascita---------------------
ddnascita- paternita--------------- s


Grazie per la pazienza. Ciao, Giuseppe.
Gaspare
2005-05-22 16:44:42 UTC
Permalink
Post by giuseppe
Post by Gaspare
Post by giuseppe
Post by Gaspare
Post by giuseppe
Passando all'atto pratico io come devo procedere ? Apro il notepad e mi creo
un file a cui do un nome, ad esempio Pippo; poi all'interno cosa
faccio? Hai detto di scrivere una sola riga formattata come serve.
Come ? Se ho ben capito questo file può essere usato come un modello
di riferimento da importare attraverso le specifiche di formattazione.
In che modo devo impostare la spaziatura tra un campo e l'altro ? Che
cosa scrivo in una sola riga ? Forse questa è la cosa più stupida da
fare. Mi puoi creare un esempio da adattare poi al caso mio? Così
lunedi mattina mi metto subito all'opera e creo sto benedetto file da
inviare al destinatario del lavoro da me richiesto.
Grazie di tutto e soprattutto per la pazienza che avete voi tutti qui.
Giuseppe.
Scusa per l'impaginazione...ci riprovo
Ciao,
1) apre il blocco note di windows o un qualsiasi editor di codice ascii...
2) scrivi una riga come da te formattata con gli spazi etc...ovviamente
gli passi i valori ...ad es. i tuoi dati anagrafici
secondo il tuo schema
35.............................35................................35.................................10......................24....................1
cognome...................nome............................luogo
dinascita............data di nascita...paternità..........sesso.3)
Salvi il file es. prova.txt4) in access: cari dagli esterni-> importa
(selezioni file di testo)eprocedi scegliendo a larghezza fissa e quindi
vai in avanzate perdeterminare il tipo di dati, l'inizio, la lunghezza
etc MA ANCHE PER SALVARELA SPECIFICA DI IMPORTAZIONE che potrai
richiamare in un secondo momento cliccando su "specifiche"5)Alla fine
sei crei una nuova tabella puoi controllare, inmodalità struttura, se
sono stati mantenute le tue direttive. Se tutto è ok applichi la
specifica all'intero file...Buona serata :-)Gaspare
Grazie Gaspare anche per il tuo suggerimento.
Non discuto sulla chiarezza di Baraldi, sono io che mi stavo complicando
la vita. A volte le cose semplici mi appaiono
complicate. Lunedì quando sarò di nuovo al lavoro tradurrò in pratica
tutto quanto qui è stato chiarito grazie a voi.
Ciao e buona notte.
Ciao e buona domenica :-)
Gaspare
Ciao Gaspare,
anche se non ho i dati, qui a casa ho fatto comunque delle prove creando
una tabella delle specifiche di formattazione
dei campi. Non mi è chiara una cosa. La tabella con le spcifiche deve
contenere 6 campi, ognuno con la larghezza richiesta, o un solo campo,
largo 140 caratteri (35+35+35+10+24+1) con una sola riga contenente anche
tutti gli altri campi opportunamente spaziati fissando i limiti durante
l'importazione ? Di seguito puoi vedere quello che ho ottenuto.
1a specifica
Specifiche spaziatura fissa_3 Campo1
Cognome----------------------------Nome-------------------------------Luogodinascita---------------------ddnascita-paternita---------------s
2a specifica
Specifiche spaziatura fissa_2 Campo1 Campo2 Campo3 Campo4 Campo5 Campo6
Cognome----------------------------
Nome------------------------------- Luogodinascita---------------------
ddnascita- paternita--------------- s
Grazie per la pazienza. Ciao, Giuseppe.
Ciao,

sulla base di quello che ti ha detto Alessandro:

Fatti un file ASCII, a mano, con una sola riga formattato come serve, ed
importalo con il Wizzard, ad un certo punto avrai la possibilità di andare
nei
Dettagli dell'Importazione e da li puoi impostare in modo semplice ed
efficace tutta la
parametrizzazione del file.
Devi dare un nome a questa formattazione, e potrai richiamarla sia in
IMPORTAZIONE che in ESPORTAZIONE.


Io credo che devi operare nel seguente modo:

ti crei una riga come la seguente con il blocco note

Cognome----------------------------Nome-------------------------------Luogodinascita---------------------ddnascita-paternita---------------s

salvando il file devi poi importarlo in access: considera l'impostazione a
larghezza fissa ed andando avanti puoi inserire le frecce di separazione e
quindi se vai in avanzate vedi che automaticamente si creeranno 6 campi dove
puoi modificare il nome, il tipo, l'inizio, la larghezza etc...e quindi
salvi con nome la specifica di importazione che serve anche come specifica
d'esportazione.

In pratica otterrai uno schema come quello posto da te inizialmente

cognome: occupa 35 caratteri alfanumerici; - Inizio 1 - Larghezza 35
nome: occupa 35 caratteri alfanumerici (da 36 a 70); - Inizio 36 - Larghezza
35
luogo di nascita: occupa 35 caratteri alfanumerici (da 71 a 105); - Inizio
71 - Larghezza 35
data di nascita: occupa 10 caratteri alfanumerici (da 106 a 115); - Inizio
106 - Larghezza 10
Paternità: occupa 24 caratteri alfanumerici (da 116 a 139); - Inizio 116 -
Larghezza 24
Sesso: occupa 1 carattere alfanumerico (a 140) - Inizio 140 - Larghezza 1

Hai anche la possibilità di indicizzare un campo etc...alla fine potrai
creare una nuona tabella all'interno della quale verranno formattati
automaticamente i tuoi campi e vedrai i tuoi dati.

Buona Domenica
Gaspare
ALESSANDRO Baraldi
2005-05-22 17:41:16 UTC
Permalink
Post by ALESSANDRO Baraldi
Fatti un file ASCII, a mano, con una sola riga formattato come serve, ed
importalo con il Wizzard, ad un certo punto avrai la possibilità di andare
nei
Dettagli dell'Importazione e da li puoi impostare in modo semplice ed
efficace tutta la
parametrizzazione del file.
Devi dare un nome a questa formattazione, e potrai richiamarla sia in
IMPORTAZIONE che in ESPORTAZIONE.
ti crei una riga come la seguente con il blocco note
Cognome----------------------------Nome-------------------------------Luogod
inascita---------------------ddnascita-paternita---------------s
Post by ALESSANDRO Baraldi
salvando il file devi poi importarlo in access: considera l'impostazione a
larghezza fissa ed andando avanti puoi inserire le frecce di separazione e
quindi se vai in avanzate vedi che automaticamente si creeranno 6 campi dove
puoi modificare il nome, il tipo, l'inizio, la larghezza etc...e quindi
salvi con nome la specifica di importazione che serve anche come specifica
d'esportazione.
In pratica otterrai uno schema come quello posto da te inizialmente
cognome: occupa 35 caratteri alfanumerici; - Inizio 1 - Larghezza 35
nome: occupa 35 caratteri alfanumerici (da 36 a 70); - Inizio 36 - Larghezza
35
luogo di nascita: occupa 35 caratteri alfanumerici (da 71 a 105); -
Inizio
Post by ALESSANDRO Baraldi
71 - Larghezza 35
data di nascita: occupa 10 caratteri alfanumerici (da 106 a 115); - Inizio
106 - Larghezza 10
Paternità: occupa 24 caratteri alfanumerici (da 116 a 139); - Inizio 116 -
Larghezza 24
Sesso: occupa 1 carattere alfanumerico (a 140) - Inizio 140 - Larghezza 1
Hai anche la possibilità di indicizzare un campo etc...alla fine potrai
creare una nuona tabella all'interno della quale verranno formattati
automaticamente i tuoi campi e vedrai i tuoi dati.
Buona Domenica
Gaspare
Un altro metodo semplice dato che si tratta di ESPORTARE
è di scrivere in un File Testo esportando delle Stringhe
a lunghezza Fissa

Ipotizziamo una Funzione di scrittura su File:

Public Function ExportFixed(sSQL as string, strFileName as string)
Dim strField As String * 35
Dim strTiìot As String
Dim rs As DAO.Recordset
Dim db As DAO.Database
Dim fld As DAO.Field
Dim Filenumber As Integer

Set db=Currentdb
Set rs=db.OpenRecordset("SELECT Campo1, Campo2, Campo3 From NomeTabella")
If rs.Eof then exit Function
rs.movefirst
Filenumber = FreeFile
Open strFileName For Append As #Filenumber
Do intil rs.Eof
For each fld in rs.Fields
strField=fld.Value
strTot=strTot & strField
strField=vbnulltring
Next
Print #Filenumber, strTot
strTot=vbNullstring
strField=vbnulltring
rs.MoveNext
Loop
Close #Filenumber
End Function

L'ho scritta molto a braccio e non considerando Spaziature variabili
ma potrebbe essere un buon punto di partenza.

Se poi hai la certezza che l'esportazione è sempe quella allora creati una
VarType personalizzata:

Public Type myExport
Campo1 as string*35
Campo2 As string*35
Campo3 As String*52
Campo4 As String*200
End Type

Quindi invece di ciclare la collection Fields leggi
direttamente i 4 campi , ti riporto parte del codice:

Dim mExp as myExport

'...................
Do intil rs.Eof
with mExp
.Campo1=rs.Fields(0)
.Campo2=rs.Fields(1)
.Campo3=rs.Fields(2)
.Campo4=rs.Fields(3)
Print #Filenumber, .campo1 & .Campo2 & .Campo3 & .Campo4
rs.MoveNext
Loop

Vedi se può essere utile anche questo metodo.
Ciao
--
@Alex (Alessandro Baraldi)
---------------------------------------------------------------------------
http://www.sitocomune.com/
http://www.mantuanet.it/alessandro.baraldi/
---------------------------------------------------------------------------
Loading...