Visual Basic Simple
Generare dei files in base ad un particolare tracciato
(prima parte)
Sincronizza Indice
Sincronizza Indice
Scarica il progetto
Scarica il progetto
Scarica il testo dell'articolo
Testo dell'articolo
Stampa l'articolo
Stampa l'articolo
Ricerca personalizzata

Richiesta di: Roberto Corona - 12 Gennaio 2001
Difficoltà: 5 / 5

Ho bisogno di scrivere un programmino che, dopo aver analizzato dei files contenenti dei particolari tracciati, estragga dei dati da un foglio di Excel e tramite questi generi dei files di testo con una particolare struttura determinata dal file del tracciato.


Il problema si presenta molto complesso. Abbiamo, infatti, una serie di files tracciato e in base a quello selezionato il programma deve generare un file di testo.

Pertanto la struttura del file di output non è predeterminabile. Sarà necessario ogni volta leggere il file del tracciato per generare il file di output.

Per tale scopo creeremo un data parser, ovvero un programmino che analizzi i files tracciato e dia all'utente la possibilità di studiare i tracciati e determinare alcune caratteristiche quali la lunghezza dei dati, la loro formattazione, etc...

Prima di iniziare con il programma vediamo uno di questi file tracciato:

  1. //CbV0001958AUVANN01UNFNNNNNARCONTIENV"
  2. //GL01CI0NNNNN"
  3. //GL02CRINNNNN"
  4. @T
  5. @APINCO PALLINO
  6. VIA GIUSEPPE VERDI, 40
  7. 00050 ROMA  RM
  8. @T
  9. !NEW 2;SPA 6; INL 19
  10. XXXXXXXXXXXXXXXXXX   XXXXXXXXXXXXXXXXXX XXX , XXXXXX  XXXXX (XX)
  11. !SPA 1
  12. XXXXXXXXXXXXXXXX   XXXXXXXXXXXXXXXX
  13. !SPA; 1
  14. XXXXXXXXXXXXXXXX
  15. !INL; 0; TEX; 3; Top; SPA; 23
  16. @>@?52>XXXXXX<@?0012345678>@?XXXXXX+@?0123<@<

Questo èil foglio di Excel che contiene i dati che andranno inseriti nel file di output in sostituzione delle "X" del file tracciato:

COGNOME_E NOME VIA_RESIDENZA NUMERO_CIV C_A_P_
COMUNE_RESIDENZA PROV_COM_R CODICE_FISCALE IMPORTO
ATXXS ANXXNINA GIULIO CESARE 34 09100
ROMA RM TZSVVVV5D49A380Z 284060
AZIENDA SANITARIA LOCALE VIA CARDUCCI 19 09101
MILANO MI 90003440956 106200
AZIENDA SANITARIA LOCALE VIA CARDUCCI 19 09102
PIACENZA PZ 90003440956 106200
BILXXXCI ANTXXXO VIA CESARE BATTISTI 8 09103
TORINO TO BLLVVV61M03F839O 80350
BISXXXXNI LEXXXNO VIA LEOPARDI 22 09104
NAPOLI NA BSGVVV52L20H825I 80350
BXXXXU FRAXXXSCO VIA PAGANINI 6 09105
BARI BA BNNVVV16R06E285P 80350
BONXXU FRANCESCO VIA PAGANINI 6 09106
PALERMO PA BNNVVV16R06E285P 155526
CAXXXDU SEBASTIANO VIA FRA TOMMASO 94 09107
BOLOGNA BO CBDVVV53L05G147S 106200
CABXXDU SEBASTIANO VIA FRA TOMMASO 94 09108
PISA PI CBDVVV53L05G147S 192371
CAO NICXXO' VIA NAZARIO SAURO 6 09109
FIRENZE FI CAOVVL25T16G146G 80350

Naturalmente i dati sopra sono soltanto degli esempi. Inutile preoccuparsi della correttezza dei codici di avviamento postale o dei codici fiscale.

Il file risultante dopo l'elaborazione delle prime due righe del foglio di Excel dovrebbe essere il seguente:

  1. //CbV0001958AUVANN01UNFNNNNNARCONTIENV"
  2. //GL01CI0NNNNN"
  3. //GL02CRINNNNN"
  4. @T
  5. @APINCO PALLINO
  6. VIA GIUSEPPE VERDI , 40
  7. 00050 ROMA  RM
  8. @T
  9. !NEW 2;SPA 6; INL 19
  10. ATXXS ANXXNINA   GIULIO CESARE 34 , 09100  ROMA (RM)
  11. !SPA 1
  12. TZSVVVV5D49A380Z   TZSVVVV5D49A380Z
  13. !SPA; 1
  14. TZSVVVV5D49A380Z
  15. !INL; 0; TEX; 3; Top; SPA; 23
  16. @>@?52>284060<@?0012345678>@?284060+@?0123<@<
  17. @T
  18. @APINCO PALLINO
  19. VIA GIUSEPPE VERDI , 40
  20. 00050 ROMA  RM
  21. @T
  22. !NEW 2;SPA 6; INL 19
  23. AZIENDA SANITARIA LOCALE   VIA CARDUCCI 19 , 09101  MILANO (MI)
  24. !SPA 1
  25. 90003440956   90003440956
  26. !SPA; 1
  27. 90003440956
  28. !INL; 0; TEX; 3; Top; SPA; 23
  29. @>@?52>106200<@?0012345678>@?106200+@?0123<@<

Non vi sgomentate se tutti questi dati sembrano insignificanti; la spiegazione seguirà a breve. Abbiamo soltanto voluto dare un'idea del problema.

La cosa che notiamo confrontando il file tracciato con il file risultante è che le prime tre righe del tracciato sono fisse, vengono ovvero scritte solo una volta, in cima al file.
Il seguito del file è invece lineare: ad ogni occorrenza di sequenze di "X" viene estratto un campo dal foglio di Excel.

In questo progettino creeremo una piccola utility che analizza i file tracciato e, senza modificarli, crea un file di specifiche intese a determinare la struttura dei campi del file tracciato. In sostanza il programmino genererà un file con estensione .FDF (File Definition) per determinare quali righe all'interno del file tracciato sono fisse e segnerà le porzioni del file tracciato (quelle con "XXX") che andranno sostituite con un campo del foglio di Excel.

Segue parte 2 >>

Fibia FBI
27 Gennaio 2001

Scarica il progetto
Scarica il progetto
Scarica il testo dell'articolo
Scarica il testo dell'articolo
Stampa l'articolo
Stampa l'articolo
Torna all'introduzione delle Richieste dei lettori