【问题标题】:Verifying and Formatting Text before importing it to MySql在将文本导入 MySql 之前验证和格式化文本
【发布时间】:2015-11-23 10:58:37
【问题描述】:

我在导入一些 CSV/TXT 文件时遇到问题。

在公司,我们从其他来源(公司)接收文件。其中一些文件有时会部分损坏。

例如,一个包含 6 列(id、name、city、state、zipCode、phone)和 200 万行的文件。该文件的前 10.000 行是可以的。但是在文件的中间而不是 6 列,它有 5 甚至 7 列。

似乎有人将几个文件“合并”到这个文件中,并且没有注意列数。因此,当我将其导入 MySql 数据库表时,由于列被破坏,数据变得非常混乱。邮政编码记录显示在字段状态等上。

我想知道如何在将此类文件导入我的数据库之前对其进行扫描,例如计算“;”每行的分隔符。是否会使用正则表达式来完成,或者最好的选择是什么?

我的程序是用 Lazarus/Pascal 编写的。

【问题讨论】:

    标签: mysql regex csv lazarus


    【解决方案1】:

    我会逐行读取文件并检查列。

    • 如果一行符合预期的列(计数,,则将其复制到另一个文件中 (input_OK.csv)。

    • 如果它没有将其转储到断行文件中 (input_KO.csv)。

    研究 input_KO.csv 错误,纠正它们,然后将纠正后的文件导入数据库。

    IMO,这里的正则表达式需要很长时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-14
      • 2013-10-21
      • 1970-01-01
      • 2012-02-15
      相关资源
      最近更新 更多