Archivo Schema.ini (controlador de archivo de texto)

Cuando se usa el controlador de texto, el formato del archivo de texto se determina mediante un archivo de información del esquema. El archivo de información del 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 del esquema proporciona a 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 necesita 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, Moneda o Decimal, o siempre que desee tener más control sobre la gestión de los datos de la tabla.

Nota:

El ISAM de texto obtendrá los valores iniciales del registro, no de Schema.ini. El mismo formato de archivo predeterminado se aplica a todas las nuevas tablas de datos de texto. 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 la opción <predeterminado> seleccionada 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 Schema.ini

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

  • El nombre del archivo de texto

  • El formato de archivo

  • Los nombres de campo, los anchos y los tipos

  • El 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 es siempre 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. El IISAM de texto puede leer automáticamente el formato de la mayoría de los archivos delimitados por caracteres. Puede usar cualquier carácter único como delimitador en el archivo, excepto las comillas dobles ("). La configuración Format 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 para la opción Formato.

Especificador de formato Formato de tabla Instrucción Format de Schema.ini
Delimitado por tabulaciones Los campos del archivo se delimitan por tabulaciones. Format=TabDelimited
CSV delimitado Los campos del archivo se delimitan por comas (valores separados por comas). Format=CSVDelimited
Delimitador personalizado Los campos del archivo se delimitan por cualquier carácter que decida introducir en el cuadro de diálogo. A excepción de las comillas dobles ("), se permiten todos los caracteres, incluido el espacio en blanco. Format=Delimited(carácter personalizado)

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 la configuración 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 examinará todo el archivo. La configuración MaxScanRows de Schema.ini invalida la configuración en el registro de Windows, archivo por archivo.

La entrada siguiente 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 los campos de una tabla mediante la opción número de columna (Coln), que es opcional para los archivos delimitados por caracteres y necesaria para los archivos de longitud fija. En el ejemplo se muestran las entradas de 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 la siguiente:

  
n=ColumnName type [Width] [#]  

Comentarios

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

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

Tipos de datos de Microsoft Jet

bit

Byte

Short

Largo

Moneda

Single

Doble

DateTime

Texto

Memo

Tipos de datos ODBC Char (igual que Text)

Float (igual que Double)

Integer (igual que Short)

LongChar (igual que Memo)

Fecha formato de fecha
Width El valor de cadena literal Width. 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 (obligatorio si se especifica Width).

Seleccionar 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 de Schema.ini que establece el juego de caracteres en ANSI:

CharacterSet=ANSI  

Especificar los formatos y conversiones de tipos de datos

El archivo Schema.ini contiene varias opciones que puede usar para especificar cómo se convierten o se muestran los datos. En la tabla siguiente se enumeran todas 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 hora y fecha corta del Panel de control de Windows.
DecimalSymbol Se puede establecer en cualquier carácter único que se use para separar el entero de la parte fraccionaria de un número.
NumberDigits Indica el número de dígitos decimales situados a la parte fraccionaria de un número.
NumberLeadingZeros Especifica si un valor decimal inferior a 1 y superior a -1 debe 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 divisa del archivo de texto. Algunos ejemplos son el signo de dólar ($) y Dm.
CurrencyPosFormat Se puede establecer en cualquiera de los siguientes valores:

- 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 que se usa para la parte fraccionaria de un importe de divisa.
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 de CurrencySymbol adecuado en el programa real.
CurrencyThousandSymbol Indica el símbolo de carácter único que se puede usar para separar los valores de divisa en el archivo de texto para los miles.
CurrencyDecimalSymbol Se puede establecer en cualquier carácter único que se use para separar todo el importe de la parte fraccionaria de un importe de divisa.

Nota:

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