用Schema来决定CSV文件的字段类型
来源:互联网 发布:usb网卡无法连接网络 编辑:程序博客网 时间:2024/06/05 06:55
用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文件的字段类型
- 用Schema来决定CSV文件的字段类型
- 自制工具:CSV代码生成器:自动生成CSV文件对应的C++实体类和字段类型解析代码
- 自制工具:CSV代码生成器:自动生成CSV文件对应的C++实体类和字段类型解析代码
- 用javacsv API 来操作csv文件
- 用javacsv API 来操作csv文件
- solr配置文件schema文件中字段的介绍
- 直接查询索引,将想要的字段写入csv文件
- Schema简单的类型
- 用SQL语句查询出所有表的表结构(字段定义,类型,长度等),导出CSV(SQL2008 R2)
- Java:用javacsv API 来操作csv文件
- php 处理字段与数据库字段顺序不一致的 csv 文件
- 用Python3读取CSV类型文件时出现无效字节延续的问题
- mysql导出含有字段列csv文件
- 条款31 让函数根据一个以上的对象类型来决定如何虚化
- item31让函数根据一个以上的对象类型来决定如何虚化
- 条款三十一:让函数根据一个以上的对象类型来决定如何虚化
- [django]用日期来查询datetime类型字段
- Java字符串函数收集
- (vc)全局变量和全局函数便于管理的定义方法
- 组合框函数
- Linux源代码目录树结构
- java.io包详细解说
- 用Schema来决定CSV文件的字段类型
- ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'
- DateTimePicker控件
- MFC重画函数【转】
- IBM DB2数据库的31个使用技巧
- 写给那些让我糊里糊涂的HTTP、TCP、UDP、Socket
- MFC应用程序中指针的使用 视图 框架 文档 状态栏 菜单栏
- 我的月赛闹心总结
- SQLite数据库的挂接及常用命令(转自:http://blog.csdn.net/windone0109/article/details/5514948)