Archivo Schema.ini (controlador de archivo de texto)

Cuando se usa el controlador text, el formato del archivo de texto se determina mediante un archivo de información de esquema. El archivo de información de esquema siempre se denomina Schema.ini y siempre se mantiene en el mismo directorio que el origen de datos de texto. El archivo de información de esquema proporciona al IISAM información sobre el formato general del archivo, el nombre de columna y la información de tipo de datos, y otras características de datos. Siempre se requiere un archivo Schema.ini para acceder a datos de longitud fija. Debe usar un archivo Schema.ini cuando la tabla de texto contenga datos DateTime, Currency o Decimal, o cualquier vez que desee tener más control sobre el control de los datos de la tabla.

Nota

Text ISAM obtendrá valores iniciales del Registro, no de Schema.ini. El mismo formato de archivo predeterminado se aplica a todas las tablas de datos de texto nuevas. Todos los archivos creados por la instrucción CREATE TABLE heredan los mismos valores de formato predeterminados, que se establecen seleccionando valores de formato de archivo en el cuadro de diálogo Definir formato de texto con <el valor predeterminado> elegido en la lista Tablas . Si los valores del Registro difieren de los valores de Schema.ini, los valores del Registro se sobrescribirán con los valores de Schema.ini.

Descripción de los archivos de Schema.ini

Schema.ini archivos proporcionan información de esquema sobre los registros de un archivo de texto. Cada entrada Schema.ini especifica una de las cinco características de la tabla:

  • Nombre del archivo de texto

  • Formato de archivo

  • Los nombres de campo, los anchos y los tipos

  • Juego de caracteres

  • Conversiones de tipos de datos especiales

En las secciones siguientes se describen estas características.

Especificar el nombre de archivo

La primera entrada de Schema.ini siempre es el nombre del archivo de origen de texto entre corchetes. En el ejemplo siguiente se muestra la entrada del archivo Sample.txt:

[Sample.txt]  

Especificar el formato de archivo

La opción Formato de Schema.ini especifica el formato del archivo de texto. Text IISAM puede leer el formato automáticamente de la mayoría de los archivos delimitados por caracteres. Puede usar cualquier carácter individual como delimitador en el archivo, excepto las comillas dobles ("). La configuración Formato de Schema.ini invalida la configuración en el Registro de Windows, archivo por archivo. En la tabla siguiente se enumeran los valores válidos de la opción Formato .

Especificador de formato Formato de tabla Schema.ini instrucción Format
Tabulación delimitada Los campos del archivo se delimitan por pestañas. Format=TabDelimited
Delimitado por CSV Los campos del archivo se delimitan por comas (valores separados por comas). Format=CSVDelimited
Delimitado personalizado Los campos del archivo se delimitan por cualquier carácter que decida introducir en el cuadro de diálogo. Se permiten todas excepto las comillas dobles (") , incluido en blanco. Format=Delimited(custom character)

O bien

Sin ningún delimitador especificado:

Format=Delimited( )
Longitud fija Los campos del archivo tienen una longitud fija. Format=FixedLength

Especificar los campos

Puede especificar nombres de campo en un archivo de texto delimitado por caracteres de dos maneras:

  • Incluya los nombres de campo en la primera fila de la tabla y establezca ColNameHeader en True.

  • Especifique cada columna por número y designe el nombre de columna y el tipo de datos.

Debe especificar cada columna por número y designar el nombre de columna, el tipo de datos y el ancho de los archivos de longitud fija.

Nota

La configuración ColNameHeader de Schema.ini invalida el valor FirstRowHasNames en el Registro de Windows, archivo por archivo.

También se pueden determinar los tipos de datos de los campos. Use la opción MaxScanRows para indicar cuántas filas se deben examinar al determinar los tipos de columna. Si establece MaxScanRows en 0, se examina todo el archivo. La configuración MaxScanRows de Schema.ini invalida la configuración en el Registro de Windows, archivo por archivo.

La siguiente entrada indica que Microsoft Jet debe usar los datos de la primera fila de la tabla para determinar los nombres de campo y debe examinar todo el archivo para determinar los tipos de datos usados:

ColNameHeader=True  
MaxScanRows=0  

La siguiente entrada designa campos en una tabla mediante la opción número de columna (Coln), que es opcional para los archivos delimitados por caracteres y es necesario para los archivos de longitud fija. En el ejemplo se muestran las entradas Schema.ini para dos campos, un campo de texto CustomerNumber de 10 caracteres y un campo de texto CustomerName de 30 caracteres:

Col1=CustomerNumber Text Width 10  
Col2=CustomerName Text Width 30  

La sintaxis de Coln es:

  
n=ColumnName type [Width] [#]  

Comentarios

En la tabla siguiente se describe cada parte de la entrada Coln .

Parámetro Descripción
ColumnName Nombre de texto de la columna. Si el nombre de la columna contiene espacios incrustados, debe incluirlo entre comillas dobles.
type Los tipos de datos son los siguientes:

Tipos de datos de Microsoft Jet

bit

Byte

Short

long

Moneda

Single

Double

DateTime

Texto

Memo

Tipos de datos ODBC Char (igual que Text)

Float (igual que Double)

Entero (igual que Short)

LongChar (igual que Memo)

Formato de fecha
Width Valor de cadena Widthliteral . Indica que el número siguiente designa el ancho de la columna (opcional para los archivos delimitados por caracteres; necesario para los archivos de longitud fija).
# Valor entero que designa el ancho de la columna (necesario si se especifica Width ).

Selección de un juego de caracteres

Puede seleccionar entre dos juegos de caracteres: ANSI y OEM. La configuración CharacterSet de Schema.ini invalida la configuración en el Registro de Windows, archivo por archivo. En el ejemplo siguiente se muestra la entrada Schema.ini que establece el juego de caracteres en ANSI:

CharacterSet=ANSI  

Especificar formatos y conversiones de tipos de datos

El archivo Schema.ini contiene varias opciones que puede usar para especificar cómo se convierten o muestran los datos. En la tabla siguiente se muestra cada una de estas opciones.

Opción Descripción
DateTimeFormat Se puede establecer en una cadena de formato que indique fechas y horas. Debe especificar esta entrada si todos los campos de fecha y hora de la importación o exportación se controlan con el mismo formato. Se admiten todos los formatos de Microsoft Jet excepto A.M. y P.M. . Si no hay ninguna cadena de formato, se usan las opciones de imagen y hora de fecha corta de Windows Panel de control.
DecimalSymbol Se puede establecer en cualquier carácter único que se use para separar el entero de la parte fraccionarcional de un número.
NumberDigits Indica el número de dígitos decimales en la parte fraccionarcional de un número.
NumberLeadingZeros Especifica si un valor decimal menor que 1 y más de -1 deben contener ceros iniciales; este valor puede ser False (sin ceros iniciales) o True.
CurrencySymbol Indica el símbolo de moneda que se puede usar para los valores de moneda en el archivo de texto. Entre los ejemplos se incluyen el signo de dólar ($) y Dm.
CurrencyPosFormat Se puede establecer en cualquiera de los valores siguientes:

- Prefijo de símbolo de moneda sin separación ($1)
- Sufijo de símbolo de moneda sin separación (1$)
- Prefijo de símbolo de moneda con una separación de caracteres ($ 1)
- Sufijo de símbolo de moneda con una separación de caracteres (1 $)
CurrencyDigits Especifica el número de dígitos utilizados para la parte fraccionarcional de un importe de moneda.
CurrencyNegFormat Puede ser uno de los siguientes valores:

- ($1)
- -$1
- $-1
- $1-
- (1$)
- -1$
- 1-$
- 1$-
- -1 $
- -$ 1
- 1 $-
- 1 $
- $ -1
- 1- $
- ($ 1)
- (1 $)

En este ejemplo se muestra el signo de dólar, pero debe reemplazarlo por el valor CurrencySymbol adecuado en el programa real.
CurrencyThousandSymbol Indica el símbolo de un solo carácter que se puede usar para separar los valores de moneda en el archivo de texto por miles.
CurrencyDecimalSymbol Se puede establecer en cualquier carácter individual que se use para separar todo de la parte fraccionarcional de un importe de moneda.

Nota

Si omite una entrada, se usa el valor predeterminado en el Panel de control de Windows.