对于不一致的列分隔文本文件,我该怎么办?

时间:2012-01-22 00:38:46

标签: delimited-text

我有一个类似于......的文本文件。

firstname:middle:lastname
firstname:middle:lastname
firstname:lastname
firstname:middle:lastname
firstname:lastname

我希望最终能够在MySQL数据库中使用这些信息,但由于列不正确,我不知道该怎么做。有什么方法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

如果您拥有的数据只是上述变化,那么您可以做出以下假设:

  

第一部分是名字

     

最后一部分是姓氏

因此,如果使用PHP,您可以使用explode分隔分隔符上的数据,例如:

循环遍历每一行时,只假设最后一部分是姓氏,第一部分是名字,中间部分是中间名。

您可以使用count()找出您在循环内读取的特定行中有多少个部分。这应该可以让你弄清楚哪一个是最后一部分。

答案 1 :(得分:0)

如果文件如此简单......解决方案很简单

firstname:middle:lastname
firstname:lastname

if(there are only two columns) { that means we have first and last name }
else { we have first, middle and last name }

如果有更多列,您可以将数据解析为正确的列,如果您设法构建优先级列表(例如它们可能缺少的顺序,例如'姓氏>名字>中间名')或者/如果你可以将它与数据类型匹配(string / int / double / date)结合起来......无论如何,你需要收集所有的域知识,看看是否足够。