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

时间:2015-02-06 20:49:30

标签: parsing asp-classic

情景

4列,ID,ParentID,Category,OrderNo和Category可以在其中包含逗号,例如" Sales,Manager"或者" HR,Recruitment"所以我不得不处理这个问题而不能知道这些单词在他们使用的文件周围有引号,所以我需要处理奇数个逗号的行,然后将这些行视为具有类别的行里面有逗号,所以它有点复杂。

1 个答案:

答案 0 :(得分:2)

我个人使用Microsoft文本驱动程序来解析CSV文件,使得处理数据变得更加容易。

首先创建一个text.dsn文件并将其保存在您的Web应用程序中的某个位置(在示例中我假设它位于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。如果你没有安装它,我认为文本驱动程序是M icrosoft Access Database Engine redistributable的一部分,但它已经有一段时间了,所以可能是错的:)