簡體   English   中英

在特定單詞VB.NET之后解析文本文件

[英]Parse Text File after a specific word VB.NET

我有一個模塊應用程序,可以讀取文本文件並查找其中包含特定單詞的行。

我的輸入看起來像這樣

 Dealer Number: 90402001
 Dealer Name: SAN TAN FORD     
 Contract Number: 7466564   
 OverRide Class:       
 Contract Code: 3417620
 Portal Claim#: 148905

 Dealer Number: 90402001
 Dealer Name: SAN TAN FORD     
 Contract Number: 7679454   
 OverRide Class:       
 Contract Code: 3762406
 Portal Claim#: 149325

 Dealer Number: 90416003
 Dealer Name: CAR TOWN KIA     
 Contract Number: DG209507  
 OverRide Class:       
 Contract Code: 3110169
 Portal Claim#: 134550

 Dealer Number: 90430005
 Dealer Name: RICH FORD     
 Contract Number: 7380708   
 OverRide Class:       
 Contract Code: 3130744
 Portal Claim#: 148537

我的輸出如下

 Dealer Name: SAN TAN FORD     Contract Number: 7466564
 Dealer Name: SAN TAN FORD     Contract Number: 7679454
 Dealer Name: RICH FORD        Contract Number: 7380708

我現在要做的就是抓取“數字:”之后的文字

這是我到目前為止所擁有的

 Imports System.IO

 Module Module1

Sub Main()

    Dim str
    Dim fileName = "C:\Users\username\Desktop\textfile.txt"

    Dim lines() = File.ReadAllLines(fileName)

    For i = 0 To lines.Length - 1
        If lines(i).Contains("SAN TAN FORD") Then
            Str = String.Format("{0}{1}", lines(i), lines(i + 1))
            Console.WriteLine(str)
        ElseIf lines(i).Contains("RICH FORD") Then
            Str = String.Format("{0}{1}", lines(i), lines(i + 1))
            Console.WriteLine(str)
        End If
    Next

End Sub

 End Module

我在想像是排線之后的東西? 所以這就像

 text = lines(i).after("Number:")
 Console.writeline(text)

那會給我

 7466564
 7679454
 7380708

有想法嗎?

有幾種不同的方法可以執行這樣的操作。 您可以使用IndexOfSubString查找並提取所需的字符串部分。 您可以使用Regex類來查找和讀取匹配值,或者,最簡單地,您可以僅使用Split方法。 如果您將字符串"Number: "視為其他兩個字符串之間的分隔符,則可以使用“ Split獲取該分隔符前后的字符串。 因此,例如:

Dim input As String = "Contract Number: 7380708"
Dim parts() As String = input.Split("Number: ")
Console.WriteLine(parts(0))  ' Outputs "Contract "
Console.WriteLine(parts(1))  ' Outputs "7380708"

沒有“之后”功能,但是您可以使用split或indexof做類似的事情

    Dim input, output As String

    input = "Contract Number: 7466564"

    ' With trim
    output = input.Split(":")(1).Trim()
    Console.WriteLine(output)

    ' With index of
    output = input.Substring(input.IndexOf("Contract Number:") + "Contract Number:".Length).Trim()
    Console.WriteLine(output)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM