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