Parametri della stringa di connessione per Schema.ini
Realizzare uno schema.ini
per aprire o collegare file di testo da Access è uno dei due metodi possibili che possono essere utilizzati per lavorare con i dati contenuti nei file da Access. Nell'articolo precedente, abbiamo esaminato i parametri della stringa di connessione del file di testo. Abbiamo anche discusso della necessità di avere ulteriori informazioni sullo schema per aiutare Access ad analizzare i file di testo. Microsoft ha una pagina su schema.ini
, ma ci sono alcune cose non immediatamente chiare, quindi le tratteremo qui.
schema.ini
file
Ogni cartella può avere un unico file denominato schema.ini
per dove possiamo definire tutti i possibili formati di file di testo che ci aspettiamo di trovare all'interno della cartella. Per ogni file di testo, dobbiamo iniziare una sezione con il nome del file e quindi descrivere la struttura. Inizieremo con una sezione campione minima, quindi analizzeremo ogni parte. Non è necessario enumerare tutti i file di testo. Eventuali file di testo non descritti da schema.ini
verrà semplicemente gestito utilizzando l'impostazione predefinita nel bene e nel male. Diamo un'occhiata alla struttura di schema.ini
.
[products.txt] Format=CSVDelimited ColNameHeader=True MaxScanRows=0 Col1=Products Text Col2=Count Long
Si noti che la prima riga per iniziare una sezione deve fare riferimento a un file di testo. Inoltre deve avere parentesi per indicare un inizio di sezione. Come forse già saprai, un schema.ini
può descrivere più di un file di testo, quindi la linea tra parentesi aiuta a mantenere separato lo schema di ogni file di testo.
La serie di righe successiva riguarda il formato generale del file e il modo in cui Access dovrebbe elaborare i file di testo. Possiamo indicare se un file di testo ha intestazioni, quante righe scansionare, quale codepage usare e così via.
L'ultima serie di righe descrive le singole colonne, il loro nome, il tipo di dati e la larghezza.
Esamineremo le opzioni valide e i possibili valori per quei 2 set.
Opzioni per descrivere la struttura complessiva del file di testo
Verrà visualizzato un elenco di opzioni valide disponibili per descrivere il formato generale del file di testo. È tipico specificare almeno il Format
e ColNameHeader
ma tutti i contenuti possibili sono facoltativi. Ogni volta che vengono omessi, verranno utilizzati i valori predefiniti come indicato di seguito. Diamo un'occhiata a come possiamo descrivere il formato di un dato file di testo.
Opzioni struttura complessiva
Come notato, quelli sono facoltativi anche se raramente omessi. Tuttavia, le impostazioni predefinite provengono dalle chiavi di registro del motore di testo. Maggiori dettagli sulle chiavi di registro sono disponibili qui.
Format
:Indica il formato dei file di testo. Se omesso, utilizza la chiave di registro del motore di testo,Format
. I valori validi sono:TabDelimited
:le tabulazioni delimitano le colonne.CSVDelimited
:le virgole delimitano le colonne come un file CSV.Delimited(*)
:Un singolo carattere delimita le colonne. Può essere qualsiasi carattere tranne il"
carattere. Ad esempio, un file di testo delimitato da|
il carattere dovrebbe riportareFormat=Delimited(|)
.FixedLength
:Le colonne sono a lunghezza fissa; il contenuto dovrebbe essere imbottito di conseguenza. Tutte le colonne devono avere una larghezza definita.
CharacterSet
:utilizza una tabella codici specifica per leggere il file di testo. I valori possibili possono essereANSI
,OEM
,Unicode
o qualsiasi valore numerico che rappresenta le codepage desiderate. Per individuare tutte le possibili codepage supportate sul tuo computer Windows, cerca nella chiave di registroComputer\HKEY_CLASSES_ROOT\MIME\Database\Codepage\
. Ad esempio, se desideri utilizzare la codifica utf-8, puoi specificareCharacterSet=65001
.ColNameHeader
:Indica se la prima riga contiene i nomi delle colonne. Se omesso, utilizza la chiave di registro del motore di testo,FirstRowHasNames
. I valori possono essereTrue
oFalse
.MaxScanRows
:Numero di righe Access dovrebbe eseguire la scansione in un file di testo per indovinare il possibile tipo di dati. Se impostato su 0, Access eseguirà la scansione dell'intero file. La chiave di registro del motore di testoMaxScanRows
viene utilizzato quando omesso.
Opzioni di localizzazione
Queste opzioni riguardano principalmente la localizzazione dei dati codificati in date, orari o valuta. Tutte queste opzioni sono facoltative e ogni volta che viene omessa, vengono utilizzate le impostazioni della regione di Windows.
DateTimeFormat
:il formato data/ora da utilizzare.DecimalSymbol
:Qualsiasi singolo carattere utilizzato come separatore tra parte integrale e parte frazionaria di un numero.NumberDigits
:numero di cifre utilizzate nella parte frazionaria di un numero.NumberLeadingZeroes
:indica se deve esserci uno zero iniziale per i numeri maggiori di -1 e minori di 1. Dovrebbe essereTrue
oFalse
.CurrencySymbol
:Identifica il simbolo da interpretare come valuta.CurrencyPosFormat
:Descrive come riportare gli importi monetari nel file di testo. Sono disponibili quattro valori validi da utilizzare per questa impostazione rappresentati dai numeri da 0 a 3. Si noti che l'esempio utilizza$
ma nell'uso effettivo, utilizzerà il simbolo della valuta effettivo definito daCurrencySymbol
o dalle impostazioni di Windows.0
:prefisso senza spazio (ad es. $1)1
:suffisso senza spazio (1$)
2
:prefisso con uno spazio in mezzo ($ 1)3
:suffisso con uno spazio tra (1 $)
CurrencyDigits
:numero di cifre nella parte frazionaria di un importo in valuta.CurrencyNegFormat
:indica la formattazione di un importo in valuta negativo. È un valore compreso tra 0 e 15 come mostrato di seguito. Nota che l'esempio usa$
ma nell'uso effettivo, utilizzerà il simbolo della valuta effettivo definito daCurrencySymbol
o dalle impostazioni di Windows.0
:($ 1)1
:-$12
:$-13
:$ 1-
4
:(1$)5
:-$16
:1-$7
:1$-
8
:-1 $9
:-$ 110
:1 $-11
:$ 1-
12
:$ -113
:1- $14
:($ 1)15
:(1 $)
CurrencyThousandSymbol
:un singolo carattere per indicare la separazione di migliaia in un importo in valuta. Se omesso, viene utilizzata l'impostazione di Windows.CurrencyDecimalSymbol
:un singolo carattere per indicare il decimale di un importo in valuta.
Opzioni di definizione della colonna
Abbiamo visto come possiamo gestire il formato generale del file, ma dobbiamo fornire maggiori informazioni sulla singola colonna. Ancora più importante, dobbiamo essere in grado di mappare i tipi di dati previsti delle colonne. Ergo, la terza sezione dello schema.ini
dovrebbe descrivere ogni colonna, con tante righe quante sono le colonne nel file di testo di destinazione. Il formato generale per la definizione di colonna può essere simile al seguente:
ColN=Name Type Width #
È importante notare che ad eccezione del prefisso ColN=
, tutte le parti sono facoltative, ma se puoi ometterle dipenderà da altri fattori, come discusso di seguito.
ColN=
:un prefisso obbligatorio che deve trovarsi a ogni inizio della riga. IlN
dovrebbe essere un numero che inizia da 1 e aumenta.Name
:assegna il nome a una colonna. Se ilColNameHeader
è impostato suTrue
, ilName
parametro può essere omesso. Tuttavia, se èFalse
, quindi devi specificare ilName
per evitare errori.Type
:indica il tipo di dati. Se omesso, Access utilizzerà la sua migliore ipotesi in base alle righe scansionate, regolate daMaxScanRows
opzione. Iltype
deve essere impostato su uno di quei valori validi. I sinonimi sono elencati dopo la parola chiave canonica:Bit
,Boolean
Byte
Short
,Integer
Long
Currency
Single
Double
,Float
DateTime
Text
,Char
Memo
,LongChar
Date
Width #
:Indica la larghezza della colonna. Se viene specificato, il valore letteraleWidth
deve essere incluso e quindi seguito da un numero. Se vuoi indicare che una colonna è larga 50 caratteri, dovresti scrivere:
Col17=ProductDescription Text Width 50
Per i file a larghezza fissa,Width
è obbligatorio. Con i file delimitati, puoi ometterlo. Tuttavia, Access utilizzerà queste informazioni per i campi di testo per limitare la lunghezza ed eventualmente troncare il contenuto. Per altri tipi di dati la larghezza non ha effetto.
Conclusione
Hai visto come puoi controllare lo schema di un file di testo usando un schema.ini
che puoi creare in una cartella in cui risiedono i file di testo. Puoi anche vedere che schema.ini
ti offre un controllo più granulare sulle impostazioni regionali, il che può essere utile se hai a che fare con dati internazionali e non puoi controllare la valuta o la formattazione della data. Nel prossimo articolo, esaminerai il metodo alternativo per descrivere la struttura del file di testo utilizzando le tabelle di sistema di Access.