【问题标题】:Classic ASP - How to preserve commas while parsing a CSV file经典 ASP - 如何在解析 CSV 文件时保留逗号
【发布时间】:2015-02-07 10:03:55
【问题描述】:

情景

4 列,ID、ParentID、Category、OrderNo 和 Category 可以在其中包含逗号,例如“销售、经理”或“人力资源、招聘”,所以我必须在不知道这些词周围有引号的情况下处理它它们因为他们使用的文件没有,所以我需要处理带有奇数个逗号的行,然后将这些行视为内部带有逗号的类别,所以它有点复杂。

【问题讨论】:

    标签: parsing asp-classic


    【解决方案1】:

    我个人会使用 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 中,但已经有一段时间了,所以可能是错误的 :)

    【讨论】:

    • 它包含在 MDAC(Microsoft 数据访问组件)中,您也可以使用 jet OLEDB 驱动程序connectionstrings.com/textfile。需要注意的一件事 - 确保在最后一个逗号分隔行之后没有额外的换行符
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-01
    • 2014-10-22
    • 1970-01-01
    相关资源
    最近更新 更多