Кажется, что наиболее распространенный способ сделать это - использовать файл Schema.ini :
Когда используется драйвер текста, формат текстового файла определяетсяс помощью файла информации схемы.Файл информации о схеме всегда называется Schema.ini и всегда хранится в том же каталоге, что и источник текстовых данных.Файл информации о схеме предоставляет IISAM информацию об общем формате файла, имени столбца и информации о типе данных, а также о некоторых других характеристиках данных.Файл Schema.ini всегда требуется для доступа к данным фиксированной длины.Вам следует использовать файл Schema.ini, когда ваша текстовая таблица содержит данные DateTime, Currency или Decimal, или в любое время, когда вы хотите больше контролировать обработку данных в таблице.
Я установилПример использования следующих файлов:
test.csv :
normal text,12345
some more ordinary words,12345-9876
Schema.ini
[test.csv]
Format=CSVDelimited
ColNameHeader=False
Col1=Dummy Text
Col2=ZipCode Text
test.vbs
Option Explicit
Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
Dim oConn : Set oConn = CreateObject("ADODB.Connection")
Dim rs : Set rs = CreateObject("ADODB.Recordset")
Dim scriptPath : scriptPath = fso.GetParentFolderName(WScript.ScriptFullName)
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & scriptPath & ";" & _
"Extended Properties=""text;HDR=NO"""
rs.Open "SELECT * FROM test.csv", oConn
WScript.Echo rs.Fields(0).Name & "|" & rs.Fields(1).Name
Do Until rs.EOF
WScript.Echo rs.Fields(0).Value & "|" & rs.Fields(1).Value
rs.MoveNext
Loop
rs.Close
oConn.Close
И вывод выглядит так:
Dummy|ZipCode
normal text|12345
some more ordinary words|12345-9876
Имейте в виду, что файл Schema.ini должен находиться в той же папке, что итекстовый файл и должен ссылаться на текстовый файл по имени ([test.csv]
в приведенном выше примере).Возможно, вам придется динамически сгенерировать файл Schema.ini для каждого импортируемого вами файла или скопировать и переименовать файл csv во временную папку.