2015-02-06 108 views
0

場景經典ASP - 如何保存逗號在解析CSV文件

4列,ID,PARENTID,類別,OrderNo和類別中可以有逗號,例如「銷售經理」或「HR,招聘」所以我將不得不處理,而不能夠知道這些單詞帶有引號,因爲它們使用的文件不是這樣,所以我需要用奇數個逗號來處理行,然後將這些行用逗號分類處理裏面所以它有點複雜。

回答

2

我個人使用Microsoft Text Driver解析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的一部分,但它已經有一段時間了,所以可能是錯誤的:)

+0

它包含在MDAC(Microsoft數據訪問組件)中,您可以也使用噴射OLEDB驅動http://www.connectionstrings.com/textfile/。有一點需要注意 - 確保在最後逗號分隔的行之後沒有額外的換行符 – John 2015-02-07 14:29:59