Formato file di testo (driver file di testo)
Il driver di testo ODBC supporta file di testo delimitati e a larghezza fissa. Un file di testo è costituito da una riga di intestazione facoltativa e da zero o più righe di testo.
Anche se la riga di intestazione usa lo stesso formato delle altre righe nel file di testo, il driver di testo ODBC interpreta le voci della riga di intestazione come nomi di colonna, non dati.
Una riga di testo delimitata contiene uno o più valori di dati separati da delimitatori: virgole, schede o delimitatore personalizzato. Lo stesso delimitatore deve essere usato in tutto il file. I valori dati Null vengono denotati da due delimitatori in una riga senza dati tra di essi. Le stringhe di caratteri in una riga di testo delimitata possono essere racchiuse tra virgolette doppie (""). Non possono verificarsi spazi vuoti prima o dopo i valori delimitati.
La larghezza di ogni voce di dati in una riga di testo a larghezza fissa viene specificata in uno schema. I valori di dati Null vengono denotati da spazi vuoti.
Le tabelle sono limitate a un massimo di 255 campi. I nomi dei campi sono limitati a 64 caratteri e le larghezze dei campi sono limitate a 32.766 caratteri. I record sono limitati a 65.000 byte.
Un file di testo può essere aperto solo per un singolo utente. Più utenti non sono supportati.
La grammatica seguente, scritta per i programmatori, definisce il formato di un file di testo che può essere letto dal driver di testo ODBC:
Formato | Rappresentazione |
---|---|
Corsivo non corsivo | Caratteri che devono essere immessi come illustrato |
Corsivo | Argomenti definiti altrove nella grammatica |
parentesi quadre ([]) | Elementi facoltativi |
parentesi graffe ({}) | Elenco di scelte reciprocamente esclusive |
barre verticali (|) | Separare le scelte reciprocamente esclusive |
puntini di sospensione (...) | Elementi che possono essere ripetuti uno o più volte |
Il formato di un file di testo è:
text-file ::=
[delimited-header-line] [delimited-text-line]... end-of-file |
[fixed-width-header-line] [fixed-width-text-line]... end-of-file
delimited-header-line ::= delimited-text-line
delimited-text-line ::=
blank-line |
delimited-data [delimiter delimited-data]... end-of-line
fixed-width-header-line ::= fixed-width-text-line
fixed-width-text-line ::=
blank-line |
fixed-width-data [fixed-width-data]... end-of-line
end-of-file ::= <EOF>
blank-line ::= end-of-line
delimited-data ::= delimited-string | number | date | delimited-null
fixed-width-data ::= fixed-width-string | number | date | fixed-width-null
Nota
La larghezza di ogni colonna in un file di testo a larghezza fissa viene specificata nel file di Schema.ini.
end-of-line ::= <CR> | <LF> | <CR><LF>
delimited-string ::= unquoted-string | quoted-stringunquoted-string ::= [character | digit] [character | digit | quote-character]...
quoted-string ::=
quote-character
[character | digit | delimiter | end-of-line | embedded-quoted-string]...
quote-characterembedded-quoted-string ::= quote-characterquote-character
[character | digit | delimiter | end-of-line]
quote-characterquote-characterfixed-width-string ::= [character | digit | delimiter | quote-character] ...
character ::= any character except:
delimiterdigitend-of-fileend-of-linequote-characterdigit ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
delimiter ::= , | <TAB> |
custom-delimitercustom-delimiter ::= any character except:
end-of-fileend-of-linequote-character
Nota
Il delimitatore in un file di testo delimitato personalizzato viene specificato nel file Schema.ini.
quote-character ::= "
number ::= exact-number | approximate-number
exact-number ::= [+ | -] {unsigned-integer[.unsigned-integer] |
unsigned-integer. |
.unsigned-integer}
approximate-number ::= exact-number{e | E}[+ | -]unsigned-integer
unsigned-integer ::= {digit}...
date ::=
mm date-separator dd date-separator yy |
mmm date-separator dd date-separator yy |
dd date-separator mmm date-separator yy |
yyyy date-separator mm date-separator dd |
yyyy date-separator mmm date-separator dd
mm ::= digit [digit]
dd ::= digit [digit]
yy ::= digit digit
yyyy ::= digit digit digit digit
mmm ::= Jan | Feb | Mar | Apr | May | Jun | Jul | Aug | Sep | Oct | Nov | Dec
date-separator ::= - | / | .
delimited-null ::=
Nota
Per i file delimitati, un valore NULL è rappresentato da nessun dato tra due delimitatori.
fixed-width-null ::= <SPACE>...
Nota
Per i file a larghezza fissa, un valore NULL è rappresentato da spazi.