【发布时间】:2015-02-07 10:03:55
【问题描述】:
情景
4 列,ID、ParentID、Category、OrderNo 和 Category 可以在其中包含逗号,例如“销售、经理”或“人力资源、招聘”,所以我必须在不知道这些词周围有引号的情况下处理它它们因为他们使用的文件没有,所以我需要处理带有奇数个逗号的行,然后将这些行视为内部带有逗号的类别,所以它有点复杂。
【问题讨论】:
标签: parsing asp-classic
情景
4 列,ID、ParentID、Category、OrderNo 和 Category 可以在其中包含逗号,例如“销售、经理”或“人力资源、招聘”,所以我必须在不知道这些词周围有引号的情况下处理它它们因为他们使用的文件没有,所以我需要处理带有奇数个逗号的行,然后将这些行视为内部带有逗号的类别,所以它有点复杂。
【问题讨论】:
标签: parsing asp-classic
我个人会使用 Microsoft Text Driver 来解析 CSV 文件,这让处理数据变得更加容易。
首先创建一个 text.dsn 文件并将其保存在您的网络应用程序中的某个位置(在示例中,我假设它位于 CSV 文件所在的位置)
[ODBC]
DRIVER=Microsoft Text Driver (*.txt; *.csv)
UID=admin
UserCommitSync=Yes
Threads=3
SafeTransactions=0
PageTimeout=5
MaxScanRows=25
MaxBufferSize=512
ImplicitCommitSync=Yes
FIL=text
Extensions=txt,csv,tab,asc
DriverId=27
然后将其视为普通的数据库连接,例如:
strPath = server.mappath("/csv/")
sDSNFile = "text.dsn"
strCSVFile = "test.csv"
sDSN = "FileDSN=" & strPath & sDSNFile & ";DefaultDir=" & strPath & ";DBQ=" & strPath & ";"
Set Conn = CreateObject("ADODB.Connection")
Conn.Open sDSN
sql = "SELECT * FROM [" & strCSVFile & "]"
set rs = conn.execute(sql)
do until rs.eof
id = rs("ID")
ParentID = rs("ParentID")
Category = rs("Category")
OrderNo = rs("orderno")
' do something cool here
loop
这样你就可以使用标准 sql 将所有开发人员拉出来
sql = "SELECT * FROM [" & strCSVFile & "] where Category='Developer'"
希望这会有所帮助。
ps。如果您没有安装它,我认为文本驱动程序包含在 Microsoft Access Database Engine redistributable 中,但已经有一段时间了,所以可能是错误的 :)
【讨论】: