我有这个文本文件,我需要解析并将解析后的数据放入数据库
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放在数据库中。我试图使用substring和Indexof在.net中解析此文件。该文件是从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