Vb.net 分析一行接一行的文本文件
我需要解析这个文本文件,并将解析后的数据放入数据库Vb.net 分析一行接一行的文本文件,vb.net,Vb.net,我需要解析这个文本文件,并将解析后的数据放入数据库 Name Qty1 Qty2 Name Qty1 Qty2 ABC 1 2 BCD 2 3 EFG 7 9 PQR 56 97 DEF 3 18 RET 988 11 我有一个表格,我需要把上面的数据放在
Name Qty1 Qty2 Name Qty1 Qty2
ABC 1 2
BCD 2 3
EFG 7 9 PQR 56 97
DEF 3 18 RET 988 11
我有一个表格,我需要把上面的数据放在那里
桌子的结构是这样的
名称,Qty1,Qty2,Col
如果我从左边解析,那么我可以把ABC,1,2,L放在表中,如果从右边解析,那么我可以把PQR,56,97,R放在同一个表中
我的问题是如何区分左栏和右栏。一旦我开始阅读,我就可以阅读ABC,1,2,然后我不知道右栏中是否有值,如果我继续阅读我的VB.net代码,那么我将开始阅读BCD,2,3,此时我不知道BCD属于右栏还是左栏,所以我不确定是否将L或R放入数据库。我试图在.net中使用substring和Indexof解析这个文件。此文件是从pdf文档生成的。以下是阅读pdf文档的代码:
Public ReadOnly Property getParsedFile() As String
Get
Dim document As New PDFDocument(filePath)
Dim parsedFile As StringBuilder = New StringBuilder()
For i As Integer = 0 To document.Pages.Count - 1
parsedFile.Append(document.Pages(i).GetText())
Next
Return parsedFile.ToString()
End Get
End Property
任何帮助都将不胜感激
下面是答案
Public Function ExtractTextFromPdf(path As String) As String
Dim its As iTextSharp.text.pdf.parser.ITextExtractionStrategy = New iTextSharp.text.pdf.parser.LocationTextExtractionStrategy()
Using reader As New PdfReader(path)
Dim str As New StringBuilder()
For i As Integer = 1 To reader.NumberOfPages
Dim thePage As String = PdfTextExtractor.GetTextFromPage(reader, i, its)
Dim theLines As String() = thePage.Split(ControlChars.Lf)
For Each theLine As String In theLines
str.AppendLine(theLine)
Next
Next
saveTextFileOnComputer(str.ToString())
Return str.ToString()
End Using
End Function
你怎么看你的文件?试试看,你可以分别解析每一行。这个解析过的文件只是一个字符串。我没有将此文件保存在任何位置,因此我要做的是ParsedFile.Substring0、ParsedFile.IndexOfName、0,然后继续使用IndexOf和substring。我不确定这是不是正确的方法。如果可以解决我的问题,我可以将此字符串保存在文件中。您需要某种形式的行尾,否则无法确定。我可以将此连续字符串保存在文件中。有没有办法,我可以在文件中引入行尾。我不认为任何人能够告诉你如何在没有断行或一致模式的情况下解析来确定行的结束或开始位置。每个“行”的字符数是否相同?