我从LDAP数据库导出CSV,我必须使用经典ASP页面读取数据。
CSV文件的格式类似于
CRDLVR47E67L781V#1653#CORDIOLI#ELVIRA#658#elvira.cordioli@sender.at#SI
我可以逐行读取文件,并且必须手动拆分该行。
如果我将#
值更改为逗号,则可以按列访问该文件。我是否可以使asp页面能够按列访问文件,以获得保留#
分隔符的单个值?
我的连接字符串是
Set oConn = Server.CreateObject("ADODB.connection")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=http://export/caselle.csv;Extended Properties='text;HDR=Yes;FMT=Delimited'"
我可以使用查询
从CSV文件中读取行Set RS=Server.CreateObject("ADODB.recordset")
RS.open "SELECT * FROM utenti_aospbo.csv", oConn
现在我只能阅读输出整行的rs.fields(0)
,如
CRDLVR47E67L781V#1653#CORDIOLI#ELVIRA#658#elvira.cordioli@sender.at#SI
我想
response.write rs.fields(0) 'CRDLVR47E67L781V
response.write rs.fields(5) 'elvira.cordioli@sender.at
答案 0 :(得分:0)
虽然我无法排除在连接字符串中有某些版本的OLED执行HTTP或接受FMT 和 FORMAT,但我确定数据源属性ADODB文本连接需要是文件夹。
我没有尝试在连接字符串或注册表中指定全局分隔符,而是使用schema.ini文件以特定于文件的方式描述元信息。
一体化:
cscript 41224005.vbs
.\41224005.vbs
Option Explicit
Dim oFS : Set oFS = CreateObject("Scripting.FileSystemObject")
Dim sF
For Each sF In Split(".\41224005.vbs ..\data\schema.ini ..\data\data1.txt")
WScript.Echo sF
WScript.Echo oFS.OpenTextFile(sF).ReadAll()
WScript.Echo "---------------"
Next
Dim sDir : sDir = oFS.GetAbsolutePathName("..\data\")
Dim sCS : sCS = Join(Array( _
"Provider=Microsoft.Jet.OLEDB.4.0" _
, "Data Source=" & sDir _
, "Extended Properties='" & Join(Array( _
"text" _
), ";") & "'" _
), ";")
Dim oDb : Set oDb = CreateObject("ADODB.Connection")
oDb.Open sCS
'WScript.Echo oDb.ConnectionString
Dim oRS : Set oRS = oDb.Execute("SELECT * FROM [data1.txt]")
WScript.Echo oRS.Fields(0).Value
WScript.Echo oRS.Fields(6).Value
oRS.Close
oDb.Close
---------------
..\data\schema.ini
[data1.txt]
FORMAT=Delimited(#)
ColNameHeader=False
---------------
..\data\data1.txt
CRDLVR47E67L781V#1653#CORDIOLI#ELVIRA#658#elvira.cordioli@sender.at#SI
---------------
CRDLVR47E67L781V
SI