Файл Schema.ini (драйвер для текстовых файлов)

При использовании драйвера текста формат текстового файла определяется с помощью файла сведений о схеме. Файл сведений схемы всегда называется Schema.ini и всегда хранится в том же каталоге, что и источник текстовых данных. Файл сведений о схеме предоставляет IISAM с информацией о общем формате файла, имени столбца и типах данных, а также о нескольких других характеристиках данных. Для доступа к данным фиксированной длины всегда требуется файл Schema.ini. Вы должны использовать файл Schema.ini, если в текстовой таблице содержатся данные DateTime, Currency или Десятичные данные или любое время, когда требуется больше контроля над обработкой данных в таблице.

Примечание.

Текстовый ISAM получит начальные значения из реестра, а не из Schema.ini. Тот же формат файла по умолчанию применяется ко всем новым таблицам текстовых данных. Все файлы, созданные инструкцией CREATE TABLE, наследуют те же значения формата по умолчанию, которые задаются путем выбора значений формата файла в диалоговом окне "Определение текстового формата" с <выбранным по умолчанию> в списке таблиц. Если значения в реестре отличаются от значений в Schema.ini, значения в реестре будут перезаписаны значениями из Schema.ini.

Общие сведения о файлах Schema.ini

Schema.ini файлы предоставляют сведения о схеме записей в текстовом файле. Каждая запись Schema.ini указывает одну из пяти характеристик таблицы:

  • Имя текстового файла

  • Формат файла

  • Имена полей, ширины и типы

  • Набор символов

  • Специальные преобразования типов данных

В следующих разделах рассматриваются эти характеристики.

Указание имени файла

Первая запись в Schema.ini всегда является именем исходного файла текста, заключенного в квадратные скобки. В следующем примере показана запись для файла Sample.txt:

[Sample.txt]  

Указание формата файла

Параметр Format в Schema.ini задает формат текстового файла. Text IISAM может автоматически считывать формат из большинства файлов с разделителями символов. В файле можно использовать любой одинарный символ в качестве разделителя, кроме двойной кавычки (). Параметр форматирования в Schema.ini переопределяет параметр в реестре Windows, файл по файлу. В следующей таблице перечислены допустимые значения параметра Format .

Спецификатор формата Формат таблицы Оператор Schema.ini Format
Вкладка с разделителями Поля в файле разделены вкладками. Format=TabDelimited
Разделители CSV Поля в файле разделены запятыми (разделенные запятыми значениями). Format=CSVDelimited
Настраиваемые разделители Поля в файле разделены любым символом, выбранным для ввода в диалоговое окно. Все, кроме двойных кавычки (") разрешены, включая пустые. Format=Delimited(custom character)

–или–

Без разделителя:

Format=Delimited( )
Фиксированная длина Поля в файле имеют фиксированную длину. Format=FixedLength

Указание полей

Имена полей можно указать в текстовом файле с разделителями символами двумя способами:

  • Включите имена полей в первую строку таблицы и задайте для ColNameHeader значение True.

  • Укажите каждый столбец по числу и укажите имя столбца и тип данных.

Необходимо указать каждый столбец по числу и указать имя столбца, тип данных и ширину для файлов фиксированной длины.

Примечание.

Параметр ColNameHeader в Schema.ini переопределяет параметр FirstRowHasNames в реестре Windows, файл по файлу.

Также можно определить типы данных полей. Используйте параметр MaxScanRows, чтобы указать, сколько строк следует проверять при определении типов столбцов. Если задано значение MaxScanRows равным 0, весь файл сканируется. Параметр MaxScanRows в Schema.ini переопределяет параметр в реестре Windows по файлу.

Следующая запись указывает, что Microsoft Jet должна использовать данные в первой строке таблицы для определения имен полей и должна изучить весь файл, чтобы определить типы данных, используемые:

ColNameHeader=True  
MaxScanRows=0  

Следующая запись назначает поля в таблице с помощью параметра "Номер столбца" (Coln), который является необязательным для файлов с разделителями символов и требуется для файлов фиксированной длины. В примере показаны записи Schema.ini для двух полей, текстового поля CustomerNumber 10 символов и текстового поля CustomerName 30 символов:

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

Синтаксис Coln :

  
n=ColumnName type [Width] [#]  

Замечания

В следующей таблице описана каждая часть записи Coln .

Параметр Описание
ColumnName Текстовое имя столбца. Если имя столбца содержит внедренные пробелы, необходимо заключить его в двойные кавычки.
type Типы данных приведены следующим образом:

Типы данных Microsoft Jet

бит

Байт

Короткие

Long

Валюта

Одна

Двойной

Дата/время

Text

Памятка

Типы данных ODBC Char (то же, что и text)

Float (то же, что и Double)

Целое число (то же, что и short)

LongChar (то же самое, что и Memo)

Формат даты даты
Ширина Строковое значение Widthлитерала. Указывает, что следующий номер обозначает ширину столбца (необязательно для файлов с разделителями символов; требуется для файлов фиксированной длины).
# Целочисленное значение, указывающее ширину столбца (требуется, если задана ширина ).

Выбор набора символов

Вы можете выбрать из двух наборов символов: ANSI и OEM. Параметр CharacterSet в Schema.ini переопределяет параметр в реестре Windows, файл по файлу. В следующем примере показана запись Schema.ini, которая задает кодировку ANSI:

CharacterSet=ANSI  

Указание форматов и преобразований типов данных

Файл Schema.ini содержит несколько параметров, которые можно использовать для указания способа преобразования или отображения данных. В следующей таблице перечислены все эти параметры.

Параметр Описание
Datetimeformat Можно задать строку формата, указывающую даты и время. Следует указать эту запись, если все поля даты и времени в импорте и экспорте обрабатываются с одинаковым форматом. Поддерживаются все форматы Microsoft Jet, кроме A.M. и P.M. Если нет строки форматирования, используются параметры короткой даты и времени в Windows панель управления.
DecimalSymbol Можно задать для любого одного символа, который используется для разделения целого числа от дробной части числа.
NumberDigits Указывает число десятичных цифр в дробной части числа.
NumberLeadingZeros Указывает, должно ли десятичное значение меньше 1 и более -1 содержать начальные нули; это значение может иметь значение False (без начальных нулей) или True.
CurrencySymbol Указывает символ валюты, который можно использовать для значений валют в текстовом файле. Примеры включают знак доллара ($) и Dm.
CurrencyPosFormat Можно задать любое из следующих значений:

- Префикс символа валюты без разделения ($1)
- Суффикс символа валюты без разделения (1$)
- Префикс символа валюты с одним разделением символов ($ 1)
- Суффикс символа валюты с одним разделением символов (1 $)
CurrencyDigits Указывает количество цифр, используемых для дробной части денежной суммы.
CurrencyNegFormat Может использоваться одно из следующих значений:

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

В этом примере показан знак доллара, но его следует заменить соответствующим значением CurrencySymbol в фактической программе.
CurrencyThousandSymbol Указывает однозначный символ, который можно использовать для разделения значений валюты в текстовом файле по тысячам.
CurrencyDecimalSymbol Можно задать для любого отдельного символа, который используется для разделения всего от дробной части денежной суммы.

Примечание.

Если не указана запись, используется значение по умолчанию в windows панель управления.