经典 ASP - 如何在解析 CSV 文件时保留逗号

Classic ASP - How to preserve commas while parsing a CSV file

场景

4 列,ID、ParentID、Category、OrderNo 和 Category 中可以有逗号,例如 "Sales, Manager" 或 "HR, Recruitment" 所以我必须处理它而不知道这些词有在它们周围加上引号,因为它们使用的文件没有,所以我需要处理带有奇数个逗号的行,然后将这些行视为带有逗号的类别的行,所以它有点复杂。

我个人会使用 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

然后把它当作一个普通的数据库连接 eg:

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。

ps。如果你没有安装它,我认为文本驱动程序作为 Microsoft Access Database Engine redistributable 的一部分包含在内,但已经有一段时间了,所以可能是错误的:)