我得到了一个用java程序创建但没有LF或endofline结尾的文件,所以我正在使用一个巨大的字符串。我尝试拆分然后使用TextFieldParser,但似乎文件太大而无法处理。内容至关重要,我需要以某种方式获取此数据,然后清理它。这是我尝试过的:
Using MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser("C:\Users\Desktop\META3.txt")
MyReader.TextFieldType = FileIO.FieldType.Delimited
MyReader.SetDelimiters(",")
Dim currentRow As String()
While Not MyReader.EndOfData
Try
currentRow = MyReader.ReadFields()
Dim currentField As String
For Each currentField In currentRow
MsgBox(currentField)
Next
Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
MsgBox("Line " & ex.Message & "is not valid and will be skipped.")
End Try
End While
End Using
我认为最好的方法是获取文本的子字符串,并且我希望在逗号的7次出现之后获取所有值,这是文件应该每行的内容。不知道如何做到这一点,似乎正则表达式可能是唯一的选择。任何想法都赞赏。
line = freader.Readline()
Dim ms As Match = Regex.Match(line, "(\w+),(\w+),(\w+),(\w+),(\w+),(\w+),")
line = ms.Value
这将是有效的;没有给出预期的结果。
答案 0 :(得分:0)
如果可以保证列数始终一致,为什么不添加一个读取每列然后进入下一组的计数器。然后,您可以使用正确的格式创建新的电子表格或文件。如果你在这里搜索,有一个.net包,它允许你动态地构建有效的.xls和.xlsx文件。该包被称为“简单的ooxml”。我用它来创建我工作的各种电子表格。我构建了一个命令行应用程序,它传递带有参数的xml文件,并将其构建为完全成熟的电子表格。希望以上有所帮助。有任何问题让我知道。