2012-11-12 51 views
0

嘿,我想找出一种方法来纠正我的CSV文件中的错误之前,它出错MalformedLineException格式不正确的CSV在结束

我的代码是这样的:

Using myreader As New Microsoft.VisualBasic.FileIO.TextFieldParser("c:\temp.csv") 
     myreader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.Delimited 
     myreader.Delimiters = New String() {",", "\n"} 
     myreader.HasFieldsEnclosedInQuotes = True 'Added 

     While Not myreader.EndOfData 
      Try 
       currentrow = myreader.ReadFields() 

的错误是在currentrow = myreader.ReadFields()

"xx.xxx.xxx.xx","2012-05-15 13:15:54","Bob Barker","[email protected]"," 

它应该阅读:

"xx.xxx.xxx.xx","2012-05-15 13:15:54","Bob Barker","[email protected]","" 

我怎样才能纠正这种以前它到达线currentrow =它是由没有在CSV的最后一行结束引号引起myreader.ReadFields()

回答

3

您可以使用File.AppendAllText添加报价:

File.AppendAllText(filePath, """") 
+0

我将如何实现,对于** ** myreader? – StealthRT

+0

在打开'myreader'之前,您需要这样做。问题是你试图打开一个不合法的csv文件。这会在打开它之前纠正问题。 – recursive

+0

太棒了!感谢您的帮助,递归! – StealthRT