在将文本导入MySql之前验证和格式化文本

时间:2015-11-23 10:58:37

标签: mysql regex csv lazarus

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

在公司,我们收到其他来源(公司)的文件。其中一些文件有时会被破坏。

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

好像有人"合并了#34;几个文件进入这一个并没有注意列数。因此,当我将其导入MySql数据库表时,由于列被破坏,数据非常混乱。 zipCode记录显示在字段状态等等。

我想知道在将这个文件导入我的数据库之前如何扫描这个文件,比如计算&#34 ;;"每行的分隔符。是否可以使用正则表达式或最佳选择?

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

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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