用Schema来决定CSV文件的字段类型
用Schema來決定CSV文件的字段類型
在說這一問題之前,先看一下以下的CSV文件內(nèi)容:
001,a,1,
002,b,2,
003,c,3,
004,d,4,
這是一個(gè)很簡單的文件,前兩個(gè)字段是字符串,最后一個(gè)是數(shù)字
我們用ADO訪問時(shí),連接如下:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\;Extended Properties="text;HDR=No;FMT=Delimited";Persist Security Info=False
然后用一個(gè)sql語句,select * from Demo#csv 來獲取所有的數(shù)據(jù)
這樣一來,你就會(huì)發(fā)現(xiàn)問題,因?yàn)榈谝粋€(gè)字段,ADO讀到的是數(shù)字
如圖所示:
那么我要讓第一列顯示出"001"來,要怎么辦呢?
解決的方法其實(shí)很簡單,就是為CSV文件寫一個(gè)Schema.ini
內(nèi)容如下:
[Demo.csv]
Format=Delimited(,)
ColNameHeader=False
MaxScanRows=0
CharacterSet=ANSI
Col1=F1 Char Width 3
Col2=F2 Char Width 10
Col3=F3 Integer
把這個(gè)文件放到csv所在的同一目錄內(nèi),然后再次打開數(shù)據(jù)集。
可以看到,F1處的數(shù)據(jù)已經(jīng)是字符串了。Schema.ini的用法可見一斑。
對于多個(gè)csv文件,也可以只用一個(gè)Schema.ini來對它們作出規(guī)定。如下:
[Demo.csv]
Format=Delimited(,)
ColNameHeader=False
MaxScanRows=0
CharacterSet=ANSI
Col1=F1 Char Width 3
Col2=F2 Char Width 10
Col3=F3 Integer
[Demo2.csv]
Format=Delimited(,)
ColNameHeader=False
MaxScanRows=0
CharacterSet=ANSI
Col1=F1 Char Width 5
Col2=F2 Char Width 5
Col3=F3 Char Width 5
Col4=F4 Char Width 5
Col5=F5 Char Width 5
Col6=F6 Char Width 5
其實(shí)就是將兩個(gè)csv的定義寫在了一起,用ini的Section來區(qū)分文件。
?
總結(jié)
以上是生活随笔為你收集整理的用Schema来决定CSV文件的字段类型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 今天的男生代表甲方的飞鸽传书
- 下一篇: 获取dbgrid的行索引