Microsoft text driver txt csv как установить

Обновлено: 07.07.2024

Хотя ODBC – это программный интерфейс для баз данных, использование ODBC и предустановленного Microsoft Text ODBC driver открывает интересные возможности для обработки текстовых файлов (таких как txt и csv), благодаря тому, что SQL запросы типа SELECT могут быть применены к содержимому txt и csv файлов, как если бы это были таблицы базы данных!

Применение SELECT запросов для обработки данных предоставляет ряд преимуществ, которые доступны из командной строки и не требуют программирования!

Ограничения

Строка с разделителями может содержать одно или несколько значений, с разделителями между ними: запятая, tab или другой символ. Выбранный разделитель используется во всём файле.
Таблицы могут включать максимум 255 столбцов. Названия полей ограничиваются 64 символами, ширина поля ограничена 32 766 символами. Размер записи ограничен 65,000 байтами.

Текстовый файл может быть открыт только для одного пользователя. Несколько пользователей не поддерживается.

Для txt и csv файлов драйвер не поддерживает кодировки Unicode, такие как UTF-8 или UCS2, можно задавать или ANSI, или OEM.

Строка подключения Microsoft Text Driver

Параметр DBQ

Единственный обязательный параметер, он задаёт драйверу путь к файлам. Путь может содержать пробелы:

Для подключения к текущему каталогу достаточно указать просто точку (.) вместо пути:

Строка запуска программы nhdbt:

Подключение к текущему каталогу и выполнение одного SQL запроса:

Подключение к текущему каталогу и выполнение SQL запросов из файла test.sql :

Примеры

Ниже приведены примеры выполнения SQL запросов применительно к csv файлу с Tab-разделителями:

Используется Schema.ini (необязательно прописывать все столбцы):

Программа nhdbt используется для тестирования. Все файлы можно скачать по ссылке внизу страницы.

Определить количество строк

SELECT COUNT возвращает число строк в файле-таблице.

Как определить число всех строк в файле:

Как определить число строк, сгруппированное по коду (поле Code):

Определение суммарных значений значение

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

Функции AVG и SUM тоже поддерживаются (для Integer).

Считать неповторяющиеся значения

Как получить только различные значения IP адресов с сортировкой:

Поиск по текстовым значениям

Как выделить пользователей Windows:

Как выделить использующих Opera:

Узнать больше

nhdbt – бесплатная программа Windows, выполняющая SQL запросы из командной строки.

При использовании текстового драйвера диалоговое окно Определение формата текста можно использовать для определения формата столбцов в выбранном файле. Это диалоговое окно позволяет указать схему для каждой таблицы данных. Эти сведения записываются в файл Schema.ini в каталоге источника данных. Для каждого исходного каталога текстовых данных создается отдельный файл Schema.ini.

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

В диалоговом окне Определение формата текста доступны следующие параметры.

Текстовый драйвер ODBC поддерживает текстовые файлы с разделителями и с фиксированной шириной. Текстовый файл состоит из необязательной строки заголовка и нуля или более строк текста.

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

Текстовая строка с разделителями содержит одно или несколько значений данных, разделенных разделителями: запятые, табуляция или пользовательский разделитель. Один и тот же разделитель должен использоваться во всем файле. Значения данных null обозначаются двумя разделителями в строке без данных между ними. Символьные строки в текстовой строке с разделителями можно заключать в двойные кавычки (""). Пробелы не могут находиться до или после значений с разделителями.

Ширина каждой записи данных в текстовой строке с фиксированной шириной задается в схеме. Значения данных null обозначаются пробелами.

Таблицы ограничены максимум 255 полями. Имена полей ограничены 64 символами, а ширина полей ограничена 32 766 символами. Записи ограничены 65 000 байтами.

Текстовый файл может быть открыт только для одного пользователя. Несколько пользователей не поддерживаются.

Следующая грамматика, написанная для программистов, определяет формат текстового файла, который можно прочитать с помощью текстового драйвера ODBC:

Формат Представление
Не курсив Символы, которые должны быть указаны, как показано
курсив Аргументы, определенные в других местах грамматики
квадратные скобки ([]) Необязательные элементы
фигурные скобки ( <> ) Список взаимоисключающих вариантов
вертикальные полосы (|) Отдельные взаимоисключающие варианты
многоточия (. ) Элементы, которые могут повторяться один или несколько раз

Формат текстового файла:

Ширина каждого столбца в текстовом файле с фиксированной шириной указана в файле Schema.ini.

Разделитель в текстовом файле с разделителями-заданными указывается в файле Schema.ini.

Для файлов с разделителями значение NULL представляется отсутствием данных между двумя разделителями.

Подробно о настройке источников данных

Что такое источник данных и где его найти для того, чтобы настроить?

  1. В программе выбрать в дереве раздел Источник данных, в появившемся окне свойств нажать кнопку Менеджер.
  2. Нажать в системе Windows кнопку Пуск(Start)->Настройки(Settings)->Панель управления(Control panel). Найти и запустить значок Источники данных ODBC.

Настройка источника данных для доступа к базе данных Access (*.mdb).

Настройка источника данных для доступа к базе данных Visual FoxPro, FoxPro, (*.dbf, *.dbc).

Настройка источника данных для доступа к документу Excel (*.xls).

Настройка источника данных для доступа к текстовым файлам (*.txt, *csv)

Как проверить работоспособность источника данных?

  1. Разверните раздел Источник данных в программе выберите любой запрос или создайте новый.
  2. Введите в тексте запроса команду select * from, далее после слова from введите имя таблицы:
    • для базы данных Access - это имя любой таблицы внутри базы данных;
    • для документа Excel - это имя диапазона ячеек;
    • для файла FoxPro - это имя файла;
    • для текстовых файлов - это имя файла;
    например, select * from Ring.
  3. Нажмите на вкладку Результаты.
  4. Если источник данных настроен правильно в разделе результаты появятся записи из соответствующего источника данных.
  5. После этого нужно нажать кнопку Сохранить, чтобы сохранить введенный SQL запрос и настройки программы.

Проект Автопрозвонка в 2014 году трансформировался
в новый проект Call Office - универсальный инструмент
автоматизации телефонного обслуживания для бизнеса.

Файлы для загрузки

Все файлы, включая log файл, Schema.ini, SQL запросы, test.cmd и nhdbt.exe доступны для загрузки с Google Drive:
processing-text-files-with-microsoft-text-driver.zip

Файл Schema.ini для Microsoft Text Driver

Файл Schema.ini file необходим, чтобы драйвер правильно интерпретировал содержимое текстовых файлов.

When the Text driver is used, the format of the text file is determined by using a schema information file. The schema information file is always named Schema.ini and always kept in the same directory as the text data source. The schema information file provides the IISAM with information about the general format of the file, the column name and data type information, and several other data characteristics. A Schema.ini file is always required for accessing fixed-length data. You should use a Schema.ini file when your text table contains DateTime, Currency, or Decimal data, or any time that you want more control over the handling of the data in the table.

Пример Schema.ini для apache_access.csv :

Как только файл Schema.ini сохранён в папке, Microsoft Text драйвер может работать с файлами.

Формат полей даты и времени DateTime

Формат для даты и времени не описан в официальной документации Schema.ini File (Text File Driver), поэтому всегда вызывает вопросы.

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

Например, для English US это dd/MM/yyyy HH:mm, также принимается dd/MM/yyyy HH:mm:ss. Поэтому обработка дат следующего лог файла будет работать только с региональными настройками English US:

При других настройках, например, европейских или российских, считывание даты не произойдёт из-за несовпадения формата.

Формат даты и времени изменяется параметром DateTimeFormat. Заданный формат применяется ко всем полям даты и времени в эотм файле:

Обратите внимание, обозначение формата не совпадает с форматом, принятым в Windows:

  • nn используется вместо mm для обозначения минут
  • AM/PM не поддерживается, время всегда в 24-часовом формате
  • регистр не имеет значения

Если формат считываемых данных не соответствует настройкам, драйвер использует значение NULL для этого поля.

Один и тот же драйвер базы данных используется как для источников текстовых данных, так и для HTML-источников данных.

При установке драйвера базы данных Text Data Source программа установки записывает набор значений по умолчанию в реестр Microsoft Windows в подкайлах Engines и ISAM Formats. Не следует изменять эти параметры напрямую; используйте программу установки для приложения, чтобы добавить, удалить или изменить эти параметры. В следующих разделах описываются параметры инициализации и формата ISAM для драйвера базы данных Text Data Source.

Параметры инициализации источника текстовых данных

Текстовая папка Access Connectivity Engine \ ISAM \ Formats включает параметры инициализации драйвера Acetxt.dll, используемой для внешнего доступа к текстовым файлам данных. Типичные параметры для записей в этой папке показаны в следующем примере.

В движке базы данных Microsoft Access используются записи текстовых папок следующим образом.

Расположение Acetxt.dll. Полный путь определяется во время установки. Значения имеют тип REG_SZ.

Количество строк, которые необходимо отсканировать при угадывке типов столбцов. Если установлено 0, весь файл будет искаться. По умолчанию — 25. Значения имеют тип REG_DWORD.

Двоичное значение, которое указывает, содержит ли первая строка таблицы имена столбцов. Значение 01 указывает, что во время импорта из первой строки будут взяты имена столбцов.

Индикатор хранения текстовых страниц. Возможные параметры:

ANSI — страница кода ANSI компьютера. Преобразования AnsiToUnicode и UnicodeToAnsi сделаны.

OEM — страница кода OEM машины. Преобразования OemToUnicode и UnicodeToOem сделаны.

Unicode — преобразования кода не были сделаны.

<десятичной номер > — номер страницы кода определенного набора символов. Преобразования в Юникод и из него будут сделаны.

По умолчанию — ANSI. Значения имеют тип REG_SZ.

Может быть любой из следующих: TabDelimited, CSVDelimited, Delimited < (один > символ). Делимитер с одним персонажем в формате Delimited может быть любым одним персонажем, за исключением двойной кавычка ( " ). По умолчанию CSVDelimited. Значения имеют тип REG_SZ.

Расширение любых файлов, которые необходимо просмотреть при поиске текстовых данных. По умолчанию это txt, csv, tab, asc. Значения имеют тип REG_SZ.

Двоичное значение, которое указывает, включен ли соответствующий символ валюты при экспорте валютных полей. Значение 01 указывает, что символ включен. Значение 00 указывает, что экспортируются только числовая информация. Значение по умолчанию — 01. Значения имеют тип REG_BINARY.

Форматы ISAM источника текстовых данных

Текстовая папка \ IsAM \ Formats IsAM Engine Access Connectivity Engine содержит следующие записи.

Текстовые файлы (*.txt; *.csv; *.tab; *.asc)

Текстовые файлы (*.txt; *.csv; *.tab; *.asc)

Импорт данных из внешнего файла в текущую базу данных. Изменение данных в текущей базе данных не изменит данные во внешнем файле.

Создание таблицы в текущей базе данных, связанной с внешним файлом. Изменение данных в текущей базе данных изменит данные во внешнем файле.

Экспорт данных из текущей базы данных в текстовый файл. Этот процесс переопишет данные, если они будут экспортироваться в существующий файл.

При изменении параметров Windows реестра необходимо выйти и перезапустить двигатель базы данных, чтобы новые параметры вступили в силу.

Форматы HTML-импорта ISAM

Папка \ \ HTML Import в движке ISAM Для подключения к системе подключения к доступу содержит следующие записи.

Импорт данных из внешнего файла в текущую базу данных. Изменение данных в текущей базе данных не изменит данные во внешнем файле.

Создание таблицы в текущей базе данных, связанной с внешним файлом. Изменение данных в текущей базе данных изменит данные во внешнем файле.

При изменении параметров Windows реестра необходимо выйти и перезапустить двигатель базы данных, чтобы новые параметры вступили в силу.

Форматы HTML-экспорта ISAM

Папка \ \ HTML Export в движке ISAM Engine ISAM Для подключения к доступу содержит следующие записи.

Экспорт данных из текущей базы данных в текстовый файл. Этот процесс переопишет данные, если они будут экспортироваться в существующий файл.

При изменении параметров Windows реестра необходимо выйти и перезапустить двигатель базы данных, чтобы новые параметры вступили в силу.

Настройка файла Schema.ini для текстовых и HTML-данных

Чтобы читать, импортировать или экспортировать текстовые и HTML-данные, необходимо создать файл Schema.ini, а также включив в него сведения об ISAM text .ini файле. Schema.ini содержит особенности источника данных: форматирование текстового файла, его чтение во время импорта и формат экспорта по умолчанию для файлов. В следующих примерах покажите макет файла с фиксированной шириной, Filename.txt:

Кроме того, формат делимитного файла указывается следующим образом:

Если вы экспортируете данные в делимитированный текстовый файл, укажите формат этого файла:

Пример "Мой специальный экспорт" относится к определенному варианту экспорта; вы можете указать любые варианты экспорта во время подключения. Этот последний пример также соответствует имени источника данных (DSN), которое может быть дополнительно передано во время подключения. Все три раздела формата могут быть включены в один .ini файл.

Движок базы данных Microsoft Access использует Schema.ini записей следующим образом.

Можно установить как True (указывая, что первая запись данных указывает имена столбцов), так и False.

Можно установить одно из следующих значений: TabDelimited, CSVDelimited, Delimited < (один символ) или > FixedLength. Делимитер, указанный для формата делимитированный файл, может быть любым одним персонажем, за исключением двойной кавычка ( " ).

Только если формат fixedLength, его можно установить к одному из следующих значений: RaggedEdGe или TrueFixedLength. RaggedEdge позволяет прекращать строки с помощью символа Carriage Return. TrueFixedLength требует, чтобы каждая строка была точным числом символов, и предполагается, что любые символы возвращения кареты, не на границе строки, будут встроены в поле. Если этого параметра нет, по умолчанию значение RaggedEdge.

Указывает количество строк, которые необходимо отсканировать при угадывке типов данных столбцов. Если это установлено до 0, весь файл будет искаться.

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

Можно установить строку формата, указывающее даты и время. Эта запись должна быть указана, если все поля даты и времени в импорте/экспорте обрабатываются в одном формате. Поддерживаются все форматы двигателей базы данных Microsoft Jet, кроме AM и PM. При отсутствии строки формата используется Windows панели управления краткое изображение даты и параметры времени.

Указывает символ валюты, который будет использоваться для значений валюты в текстовом файле. Примеры включают знак доллара ($) и dm. Если эта запись отсутствует, используется значение по умолчанию Windows панели управления.

Можно установить любое из следующих значений: префикс символа валюты без разделения ($1) Суффикс символа валюты без префикса символа разделения (1$) с суффиксом символа разделения символа ($ 1) с разделением одного символа (1 $) Если эта запись отсутствует, используется значение по умолчанию в панели управления Windows.

Указывает количество цифр, используемых для дробной части суммы валюты. Если эта запись отсутствует, используется значение по умолчанию Windows панели управления.

Может быть одним из следующих значений: ($1) -$1 $-1 $1 - (1$) -1$1-$ 1$- -1 $-1 $- $1 - $1 - $1 - $1 ($1) Знак доллара показан для целей этого примера, но его следует заменить соответствующим значением CurrencySymbol в фактической программе. Если эта запись отсутствует, используется значение по умолчанию Windows панели управления.

Указывает символ одного символа, который используется для разделения значений валюты на тысячи в текстовом файле. Если эта запись отсутствует, используется значение по умолчанию Windows панели управления.

Можно установить для любого отдельного символа, который используется для отделить целое от дробной части суммы валюты. Если эта запись отсутствует, используется значение по умолчанию Windows панели управления.

Можно установить для любого отдельного символа, который используется для отделить целый ряд от дробной части номера. Если эта запись отсутствует, используется значение по умолчанию Windows панели управления.

Указывает количество десятичных цифр в дробной части номера. Если эта запись отсутствует, используется значение по умолчанию Windows панели управления.

Указывает, должно ли десятичная величина меньше 1 и больше -1 содержать ведущие нули; это значение может быть false (без ведущих нулей) или True.

Можно установить для любого отдельного символа, используемого для делимитации строк, содержащих любые другие специальные символы. Например, "ABC, " " xyz, pqr, hij Если эта запись не представлена, делимитер по умолчанию " является двойной " " цитатой. Если эта запись не является " строкой, никакие символы не будут " рассматриваться как делимитеры.

Вообще задача следующая: нужно из Excel получить доступ к CSV-файлу, чтобы работать с CSV-файлом не в программе "Excel", а как с базой данных. Так по идее правильнее будет.

Ещё хотелось бы пользоваться одним поставщиком (а не несколькими) в разных версиях "MS Office".

Поставщик (имеет ещё название "провайдер") - это программа, которая подключается к базе данных. База данных в данной теме - это CSV-файл. Поставщик в данной теме "Microsoft Text ODBC Driver" (в макросе поставщик записан "".
Библиотека "ADO" подключается к поставщику.
Макрос подключается к библиотеке "ADO".

Ошибка при печати."Не удается найти указанный файл"
Вот код печати через дефолтный принтер: private static string GetDefaultPrinterName() < .

  1. Рассмотрим часть вашей строки подключения "Provider=. ". Название параметра здесь не Provider, а Driver. Смотрите официальную статью Microsoft, раздел "Строки подключения ODBC".
  2. После замены названия параметра мы обнаружим, что в вашей строке подключения не указан поставщик (Provider). Нужно его указать.
  1. Windows-реестр;
  2. нужно создать текстовый файл и поместить его в специальное место. Из этого текстового файла макрос будет брать разделитель.

Мне нужно указать разделитель ";".

Здравствуйте, Скрипт,

Да, вы правы. Если нужно использовать особый разделитель, то необходимо либо изменить соответствующую запись в реестре, либо использовать файл schema.ini.

По ссылке Excel, csv & Query вы можете найти мое решение этой проблемы.

Буду знать, что не всё так просто с "ADO" и текстовыми файлами.

Скрипт, указывать расположение данного файла не нужно.

Однако необходимо, чтобы этот файл лежал в той же папке, что и csv-файл. Когда драйвер будет его обрабатывать, он самостоятельно проверит наличие в папке csv-файла файла схемы данных и если он есть - применит указанные в нем настройки.

Если вы посмотрели далее в этой же теме еще один листинг, то наверняка обратили внимание на то, что при программном создании файла schema.ini я располагаю его в той же папке, где и csv-файл. Таким образом, указанное выше условие соблюдается.

Ошибка при компиляции: "Не удается найти указанный файл"
Всех С Новым Годом. При компиляции в VS 12 у меня выдает ошибку. Пробовал в VS 10.

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

Хотя ODBC – это программный интерфейс для баз данных, использование ODBC и предустановленного Microsoft Text ODBC driver открывает интересные возможности для обработки текстовых файлов (таких как txt и csv), благодаря тому, что SQL запросы типа SELECT могут быть применены к содержимому txt и csv файлов, как если бы это были таблицы базы данных!

Применение SELECT запросов для обработки данных предоставляет ряд преимуществ, которые доступны из командной строки и не требуют программирования!

Строка подключения Microsoft Text Driver

Параметр DBQ

Единственный обязательный параметер, он задаёт драйверу путь к файлам. Путь может содержать пробелы:

Для подключения к текущему каталогу достаточно указать просто точку (.) вместо пути:

Строка запуска программы nhdbt:

Подключение к текущему каталогу и выполнение одного SQL запроса:

Подключение к текущему каталогу и выполнение SQL запросов из файла test.sql :

Файл Schema.ini для Microsoft Text Driver

Файл Schema.ini file необходим, чтобы драйвер правильно интерпретировал содержимое текстовых файлов.

When the Text driver is used, the format of the text file is determined by using a schema information file. The schema information file is always named Schema.ini and always kept in the same directory as the text data source. The schema information file provides the IISAM with information about the general format of the file, the column name and data type information, and several other data characteristics. A Schema.ini file is always required for accessing fixed-length data. You should use a Schema.ini file when your text table contains DateTime, Currency, or Decimal data, or any time that you want more control over the handling of the data in the table.

Пример Schema.ini для apache_access.csv :

Как только файл Schema.ini сохранён в папке, Microsoft Text драйвер может работать с файлами.

Формат полей даты и времени DateTime

Формат для даты и времени не описан в официальной документации Schema.ini File (Text File Driver), поэтому всегда вызывает вопросы.

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

Например, для English US это dd/MM/yyyy HH:mm, также принимается dd/MM/yyyy HH:mm:ss. Поэтому обработка дат следующего лог файла будет работать только с региональными настройками English US:

При других настройках, например, европейских или российских, считывание даты не произойдёт из-за несовпадения формата.

Формат даты и времени изменяется параметром DateTimeFormat. Заданный формат применяется ко всем полям даты и времени в эотм файле:

Обратите внимание, обозначение формата не совпадает с форматом, принятым в Windows:

  • nn используется вместо mm для обозначения минут
  • AM/PM не поддерживается, время всегда в 24-часовом формате
  • регистр не имеет значения

Если формат считываемых данных не соответствует настройкам, драйвер использует значение NULL для этого поля.

Примеры

Ниже приведены примеры выполнения SQL запросов применительно к csv файлу с Tab-разделителями:

Используется Schema.ini (необязательно прописывать все столбцы):

Программа nhdbt используется для тестирования. Все файлы можно скачать по ссылке внизу страницы.

Определить количество строк

SELECT COUNT возвращает число строк в файле-таблице.

Как определить число всех строк в файле:

Как определить число строк, сгруппированное по коду (поле Code):

Определение суммарных значений значение

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

Функции AVG и SUM тоже поддерживаются (для Integer).

Считать неповторяющиеся значения

Как получить только различные значения IP адресов с сортировкой:

Поиск по текстовым значениям

Как выделить пользователей Windows:

Как выделить использующих Opera:

Ограничения

Строка с разделителями может содержать одно или несколько значений, с разделителями между ними: запятая, tab или другой символ. Выбранный разделитель используется во всём файле.
Таблицы могут включать максимум 255 столбцов. Названия полей ограничиваются 64 символами, ширина поля ограничена 32 766 символами. Размер записи ограничен 65,000 байтами.

Текстовый файл может быть открыт только для одного пользователя. Несколько пользователей не поддерживается.

Для txt и csv файлов драйвер не поддерживает кодировки Unicode, такие как UTF-8 или UCS2, можно задавать или ANSI, или OEM.

Файлы для загрузки

Все файлы, включая log файл, Schema.ini, SQL запросы, test.cmd и nhdbt.exe доступны для загрузки с Google Drive:
processing-text-files-with-microsoft-text-driver.zip

Узнать больше

nhdbt – бесплатная программа для Windows, выполняющая SQL запросы из командной строки.

Читайте также: