如何使用OleDbDataAdapter(固定长度文本文件)获取没有小数分隔符的十进制数?

时间:2013-08-09 22:22:40

标签: c# text-files fixed-width decimal-point oledbdataadapter

假设我有一个固定长度的文本文件,包含3列,其中两列是双精度的2位小数,但它们没有分隔符(如点或逗号):

21318545
22422523
65498798
65465463

使用OleDbDataAdapter我必须创建一个schema.ini文件,我这样做:

[numbers.txt]
ColNameHeader=False
Format=FixedLength
NumberDigits=2
DecimalSymbol=
Col1="A" Short Width 2
Col2="B" Double Width 3
Col3="C" Double Width 3

然后检索数据表:

var dataAdapter = new OleDbDataAdapter("SELECT A, B, C FROM [numbers.txt]", "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=numbers.txt;Extended Properties="text;HDR=NO;");

var dataTable = new DataTable();
dataAdapter.Fill(dataTable);

我想获得一个具有以下值的DataTable:

A   B       C
21  3.18    5.45
22  4.22    5.23
65  4.98    7.98
65  4.65    4.63

但只是将空分配给schema.ini中的DecimalSymbol=不起作用。我不想做任何计算来检索这些字段,甚至不想迭代文件/数据表来为每个数字添加小数分隔符,除以100或类似的东西,因为numbers.txt实际上有太多的双列要解析

任何想法都会受到赞赏。

0 个答案:

没有答案