zoukankan      html  css  js  c++  java
  • 【翻译】读取文本文件(txt、csv、log、tab、fixed length)(下)

    其他文件格式

    我们讨论了读取逗号分隔的文件(CSV)的方法。那么如何来实现处理制表符分隔文件和定长文件?

    主要在于我们提供的连接字符串。让我们来看下连接字符串的细节。

    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\FolderName;
    Extended Properties="text;HDR=YES;FMT=Delimited

    Provider - 表示数据库的类型。我们使用OLEDB连接类型。

    Data Source - 文件夹被当做数据库。

    Extended Properties - 定义读取文件方式的属性集合。

    第一部分定义了文件类型。在我们的案例中,虽然文件格式分类为逗号分隔文件、制表符文件,或者定长文件,但是它们都是文本文件。如果我们要读取一个Excel文件,我们要是使用Excel x.x ,x.x是版本号。

    HDR(Header) - 用来指定表头是否可用。YES - 输入文件的第一行被当做表头其他行被当做数据。NO - 第一行被当做数据。

    FMT(Format) - 指定格式化类型。可以有如下值:

    Delimited 文件被当做一个逗号分隔文件。逗号是默认分隔符。
    Delimited(x) 文件被当做 'x’作为分隔符的文件
    TabDelimited 文件被当做制表符分隔的文件
    FixedLength 通过指定字段的固定长度来读取数据。你要使用属性集合(例如Col1,Col2)来指定列的宽度和类型。更多MSDN

    如果格式化类型指定为’Delimited’,默认字符时逗号(,)。这存储在注册表中。你在注册表位置HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Text\Format进行修改

    正如人们所说,不要搞乱注册表。微软提供了一种替代方法-通过使用Schema.ini文件。如果我们要读取一个定长(FixedLength)文件,我们必须使用Schema.ini文件。我们在schema文件中指定字段的长度。

    从多个文件读取

    如果你有多个文件和数据需要基于共同的列做合并或者过滤,我们使用和数据库操作相同的方式。我们可以join表来获取合并数据。记住输出结果将是两个文件列做CROSS JOIN。确保你基于共同的列来过滤数据。

    例子:

    Examples:

    SampleFile1.CSV – (EmpID, Name, Address)
    SampleFile2.CSV – (EmpID, Salary, Month)

    //Where clause is used to get ‘Natural Join’ string mySelectQuery = "SELECT * FROM SampleFile.CSV As Sample1, _ SampleFile2.CSV As Sample2 " + _ "Where Sample1.Number=Sample2.Number"; 'Where clause is used to get ‘Natural Join’ objRecordset.Open "SELECT * FROM SampleFile.CSV As Sample1, _ SampleFile2.CSV As Sample2 " & _ "Where Sample1.Number=Sample2.Number", _ objConnection, adOpenStatic, adLockOptimistic, adCmdText

    注意别名在join查询中是必须的,特别是在表具有相同名称的列。在我们的案例中,表名(文件名)中有点(.)。所以查询分析器将被表中的点误导,可能把’CSV.Number’当做列名

    qishichang

  • 相关阅读:
    读REDIS数据结构
    一致性哈希虚节点解决雪崩问题
    TCP的建立和关闭
    nginx和apache的比较
    进程和线程的区别
    acm过河卒
    搭建centos7 的php环境
    navicat 中 oracle数据传输到mysql上
    安装虚拟机精简版centos7
    整合tomcat的一些配置
  • 原文地址:https://www.cnblogs.com/qishichang/p/1709675.html
Copyright © 2011-2022 走看看