【问题标题】:Evaluate/Find column delimiter of a text file评估/查找文本文件的列分隔符
【发布时间】:2015-05-29 16:24:24
【问题描述】:

是否有人有评估/查找给定文本文件的列分隔符的好方法?我愿意提供任何建议,无论是涉及 C# 脚本、Powerscript 等。

我有一个客户喜欢通过更改几乎所有其他数据馈送的列分隔符来让我们站稳脚跟。这显然破坏了我们的 SQL 代理导入作业。虽然我可以走失败路线——如果这个连接管理器(例如使用逗号分隔符)失败,请使用另一个连接管理器(制表符分隔的连接)——但我更愿意在失败之前评估分隔符并决定采取哪条路线.有人有这方面的经验吗?

【问题讨论】:

  • 如果您的客户随机更改输入,只需增加软件修改的计费时间。但是对于您的问题,我认为脚本无法“猜测”仅看到文本的分隔符是什么。您需要与您的客户决定一个协议。例如,如果名称字段有Samuel, Jhon ,则不能使用, 作为分隔符。因为这可以是一个字段名称或两个字段名称和姓氏

标签: c# ssis delimiter


【解决方案1】:

假设每行具有相同数量的列,您始终可以选择一组常用分隔符(逗号、制表符、竖线等)并计算前这么多行中每个分隔符的数量。如果前 5 行的逗号计数为 34,34,35,34,36 而这些行的制表符计数为 0,0,1,0,0,那么您可能有 34 个逗号分隔的列,并在文本中嵌入了一些额外的逗号。如果您提前知道预期的列数会更容易。

底线是它可能不是一个确定性的黑白算法,而是根据数据通常的样子选择一些规则和阈值,然后让您的代码做出最佳猜测。

那个,或者把重击放在客户身上。 :-)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-07
    • 1970-01-01
    • 2019-12-07
    • 2021-01-16
    • 2016-01-19
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多